Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Проблема из-за \n, Язык С++
BHYCHIK
сообщение 3.02.2008 - 12:12

Энтузиаст
****

Группа: Участник
Сообщений: 355
Регистрация: 28.08.2005
Пользователь №: 9490


Я думаю проблема известная. Смысл такой, как известно при считывании данных в буфере из-за нажатия энтера остаётся символ \n. В итоге он воспринимается как нажатие на энтер при следующем считывании символьных данных. Подскажите как с этим боротся, пробовал после каждого ввода ставить функцию getch() - не помогло. Очень нужна помощь, скоро сдавать курсовик, а без решения этой проблемы не имеет смысла делать прогу дальше.
Перейти в начало страницы
 
+Цитировать сообщение
Micro Ice
сообщение 3.02.2008 - 21:30

Звезда форума
******
кубок за победу в конкурсах Форума
Группа: Участник
Сообщений: 1009
Регистрация: 26.04.2006
Пользователь №: 13250


Как считываешь то? getline использовать пробовал?
Перейти в начало страницы
 
+Цитировать сообщение
BHYCHIK
сообщение 4.02.2008 - 10:56

Энтузиаст
****

Группа: Участник
Сообщений: 355
Регистрация: 28.08.2005
Пользователь №: 9490


Считываю через scanf()
Перейти в начало страницы
 
+Цитировать сообщение
someone
сообщение 4.02.2008 - 23:08

Unknown
****
орден III степени
Группа: Модератор
Сообщений: 405
Регистрация: 29.09.2003
Пользователь №: 74


советую перейти на STL:

1) MS VS .Net 2003 и выше, может быть и последние версии Visual C++ 6

#include <iostream>
#include <string>

void main()
{
std::string line;
std::cin >> line;
std::cout << "User typed: " << line << std::endl;
int a,b;
std::cin >> a >> b;
}

2) олдовый Visual C++ 6

#include <iostream.h>
#include <string.h>

void main()
{
string line;
cin >> line;
cout << "User typed: " << line << endl;
int a,b;
std::cin >> a >> b;
}

3) без string:

#include <iostream>
#include <string>

void main()
{
char line[255];
std::cin.getline(line,255);
std::cout << "User typed: " << line << std::endl;
int a,b;
std::cin >> a >> b;
}

4) stdio:


то что тебе нужно скорее всего:

#include <stdio.h>

void main()
{
int a,b;
scanf("%d\n%d",&a,&b);/// просто добавил \n между двумя числами которые читаю
_asm nop;
}
Перейти в начало страницы
 
+Цитировать сообщение
NotLiquid
сообщение 3.02.2009 - 19:40

в вечном поиске
*******

Группа: Участник
Сообщений: 8163
Регистрация: 24.11.2007
Пользователь №: 21977


эм... я, конечно, ламо в программинге, но не должно ли это на простых, без выделываний, сях выглядеть так?

CODE

char S[S_len];
scanf("%s",S);
S[strlen(S)] = 0;



единственно что - возможно, S[strlen(S)-1] = 0; Не помню я...

ЗЫ: Сомеоне, не знаю, как на это реагируют компилеры, но вроде бы если вместо нопа поставить просто ";" - эффект должен быть аналогичным) А асмовский код в интеловских процах использовать - фи и моветон ваще))

Сообщение отредактировано NewJesus - 3.02.2009 - 19:45
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 26.04.2024 - 14:48