LinuxForum.Fans
Тема

не дружат cin и getchar

Автор: mokynis 3 сообщений 1518 просмотров
#249502

помогите разобраться, что за ерунда: сам полдня уже бьюсь и ничего так и не понял. Вот программка

text
#include <iostream>
#include <stdio.h>

using namespace std;

int main() { const int len=20; char sss[len],let=' '; /* int what_run=1; cout<<"enter task #:"; cin>>what_run; if(what_run<1 || what_run>15) { cout<<"Good bye!"<<endl; return 1; } */ cout<<"get text: \n"; for(int i=0;i<len;i++) { let=getchar(); if(let!='\n') { sss[i]=let; } else { sss[i]='\0'; break; } } cout<<"str="<<sss<<";"<<endl; return 1; }

Примитив. Но если раскомментировать верхние строки, то getchar просто игнорируется. Пробовал и getline, и cin.getline-не-а! не работает. Как будто вообще ничего там не написано. В чем дело, может кто-то подсказать?
P.S. система-Ubuntu 9.10, компилятор g++. Хотя, думаю, это не важно

#249507

после чтения цифры в буфере остаётся '\n', который читает getchar() поэтому цикл сразу заканчивается.

ЗЫ: лучше не смешивать методы ввода си и с++. см. ifstream::get()

#249721

огромное спасибо! как только дали направление, куда копать, сразу нашел кучу информации в интернете на эту тему

Войдите или зарегистрируйтесь, чтобы ответить.