Проблема из-за \n, Язык С++ |
Здравствуйте, гость ( Вход | Регистрация )
Проблема из-за \n, Язык С++ |
3.02.2008 - 12:12
Вставить ник | Быстрая цитата | Сообщение
#1
|
|
Энтузиаст Группа: Участник Сообщений: 355 Регистрация: 28.08.2005 Пользователь №: 9490 |
Я думаю проблема известная. Смысл такой, как известно при считывании данных в буфере из-за нажатия энтера остаётся символ \n. В итоге он воспринимается как нажатие на энтер при следующем считывании символьных данных. Подскажите как с этим боротся, пробовал после каждого ввода ставить функцию getch() - не помогло. Очень нужна помощь, скоро сдавать курсовик, а без решения этой проблемы не имеет смысла делать прогу дальше.
|
|
|
3.02.2008 - 21:30
Вставить ник | Быстрая цитата | Сообщение
#2
|
|
Звезда форума Группа: Участник Сообщений: 1009 Регистрация: 26.04.2006 Пользователь №: 13250 |
Как считываешь то? getline использовать пробовал?
|
|
|
4.02.2008 - 10:56
Вставить ник | Быстрая цитата | Сообщение
#3
|
|
Энтузиаст Группа: Участник Сообщений: 355 Регистрация: 28.08.2005 Пользователь №: 9490 |
Считываю через scanf()
|
|
|
4.02.2008 - 23:08
Вставить ник | Быстрая цитата | Сообщение
#4
|
|
Unknown Группа: Модератор Сообщений: 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; } |
|
|
3.02.2009 - 19:40
Вставить ник | Быстрая цитата | Сообщение
#5
|
|
в вечном поиске Группа: Участник Сообщений: 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 |
|
|
Текстовая версия | Сейчас: 26.04.2024 - 14:48 |