Форум: "Прочее";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
ВнизПрикол в Эклипсе Найти похожие ветки
← →
Галинка © (2007-09-05 17:45) [0]Пробую программить на Си в Эклипсе. Вроде все было нормально. Но теперь почему-то он обрабатывает сначала ввод (например, scanf), а только потом печатает комменты к вооду. Странно. (( Это как-то лечится?
← →
wicked © (2007-09-05 17:58) [1]flush
fflush
← →
palva © (2007-09-05 17:59) [2]Бывает, что вывод "застревает" в буфере. Лечится функцией flush. ИМХО при консольных диалогах эту функция обязательно должна использоваться, хотя на многих компиляторах можно обойтись без нее.
← →
Галинка © (2007-09-05 18:11) [3]Это точно для Си? Что-то я по ней доку найти не могу ((
← →
palva © (2007-09-05 21:40) [4]Вот здесь есть fflush http://www-ccs.ucsd.edu/c/stdio.html
← →
Галинка © (2007-09-05 22:41) [5]Спасибо. Я вроде нашла что-то подобное. Но эффект не совсем тот, что ожидался. Или если уже начинаешь работать в потоках, то все надо делать в потоке? И для ввода использовать тогда fscanf/fputs? А для вывода fprintf?
← →
palva © (2007-09-05 22:58) [6]> Или если уже начинаешь работать в потоках
Вроде речь шла об обычном си и функциях типа scanf. Ну если в потоках, то там тоже есть flush.
← →
palva © (2007-09-05 23:20) [7]
#include <iostream>
using namespace std;
int main() {
char buf[100];
cout << "Input now: " << flush;
cin >> buf;
cout << "OK " << buf << endl;
return 0;
}
← →
wicked © (2007-09-05 23:40) [8]
> Спасибо. Я вроде нашла что-то подобное. Но эффект не совсем
> тот, что ожидался. Или если уже начинаешь работать в потоках,
> то все надо делать в потоке? И для ввода использовать тогда
> fscanf/fputs? А для вывода fprintf?
потоки - это thread или stream?
> palva © (05.09.07 23:20) [7]
> #include <iostream>
> using namespace std;
>
> int main() {
> char buf[100];
> cout << "Input now: " << flush;
> cin >> buf;
> cout << "OK " << buf << endl;
> return 0;
> }
это - не си
← →
Игорь Шевченко © (2007-09-06 09:30) [9]Кто-то собирался нас покинуть...
← →
Галинка © (2007-09-06 13:02) [10]palva © (05.09.07 23:20) [7]
это не совсем тот синтаксис. У меня примерно так:
int chars_ein(void){
char a,b,c;
printf("1.Buchstabe eingeben: ");
do {scanf("%c", &a);} while (getchar() != "\n");
printf("2.Buchstabe eingeben: ");
do {scanf("%c", &b);} while (getchar() != "\n");
printf("3.Buchstabe eingeben: ");
do {scanf("%c", &c);} while (getchar() != "\n");
printf("Sie haben %c, %c und %c eingegeben.", a,b,c);
return 0;
}
← →
clickmaker © (2007-09-06 13:04) [11]
> do {scanf("%c", &a);} while (getchar() != "\n");
а зачем цикл?
← →
Галинка © (2007-09-06 13:30) [12]clickmaker © (06.09.07 13:04) [11]
вроде как чтобы пропустить ввод символа "возврат коретки". Т.е. между двумя комментами. Тончее после первого ввода? символ возврата коретки остается в памяти и считается как бы, что второй символ уже введен.
← →
clickmaker © (2007-09-06 13:41) [13]
> [12] Галинка © (06.09.07 13:30)
scanf("%c", &a);
fflush(stdin);
← →
palva © (2007-09-06 13:46) [14]Я пробовал это на bcc32
#include <stdio.h>
char buf[11];
int main() {
printf("Eingeben zeile hier:"); flushall();
scanf("%10s", buf);
printf("%s\n", buf);
return 0;
}
← →
Галинка © (2007-09-06 13:59) [15]у меня стоит MinGW+gdb+Eclipse for C/C++. Он вообще не знает функции flush/flushall/fflush (((
← →
Галинка © (2007-09-06 14:03) [16]вот код
#include <stdio.h>
int main(){
char begruss[21];
printf("Hallo Welt!!!\n");
printf("Geben Sie bitte einen Satz ein: \n");
scanf("%20s", begruss);
printf("%s\n", begruss);
return 0;
}
а вот результат
hallo
Hallo Welt!!!
Geben Sie bitte einen Satz ein:
hallo
а должно бы быть так
Hallo Welt!!!
Geben Sie bitte einen Satz ein:
hallo
hallo
← →
clickmaker © (2007-09-06 14:46) [17]
> [16] Галинка © (06.09.07 14:03)
а iostream и cin / cout в этом MinGW+gdb+Eclipse for C/C++ есть?
← →
Галинка © (2007-09-06 14:57) [18]fflush нашла. Но не помогло. Ощущение именно что очередь ввода выполняется сначала, а очередь вывода после. Они не смешиваются ((
← →
palva © (2007-09-06 15:03) [19]Вот у них
http://www.tutorials.de/forum/c-c/255429-c-programm-xp-eclipse-cygwin-soll-notepad-fenster-mit-datei-oeffnen.html
fflush после printf почему-то работает.
← →
Галинка © (2007-09-06 15:21) [20]действительно. Работает. Но почему надо чистить буфер вывода? Т.е. то что стоит в скобках, попадает только в буфер, а на экране не отображается? Или я что-то совсем не пойму (( И почему под Линуксом все нормально работает?
← →
KSergey © (2007-09-06 15:31) [21]Чудеса телепатии в первых жекомментах! ПОразительно!
Я по вопросу было подумал, что проблемы при работе с Eclips...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.041 c