программа на с++
как посимвольно считывая строку со стандартного входа посчитать сколько в ней символов???
цикл : while(getchar() != EOF) {i++; getchar(); } тупо зависает…. или может быть когда вводим строку нужно в конец добавить какой то символ…. вобщем помогите плиз кто может…
3 июня 2008 в 23:02
Сорри, косякнулся… Спать уже хотел, но я думаю дело не в переменной, а общую идею, которую я донести хотел – поняли )
3 июня 2008 в 17:02
2 Иван:
Код-то хорошо бы проверять!
У Вас переменная len существует только в цикле.
3 июня 2008 в 0:05
#include<cstdio>
using namespace std;
int main()
{
for( int с = 0, len = 0; ( с = getchar() ) != EOF; ++len );
printf( "%d", len );
return 0;
}
2 июня 2008 в 12:02
#include <conio.h>
#include <stdio.h>
void main(void)
{
char c=32, buf[512];//или динамический
buf[0]='\0';
int len=0;
while(c!=13)
{
c=getch();
buf[len++]=c;
buf[len]='\0';
clrscr();
printf("%d\n",len);
printf("%s",buf);
}
return;
}
2 июня 2008 в 12:01
char c;
unsigned len=0;
while(scanf("%c",&c))
len++;
по-моему так.
2 июня 2008 в 12:00
Нужно проверку на конец строки сделать) Ведь в условии сказано что "строка"?
2 июня 2008 в 10:02
текст мне надо обязательно подавать с клавы … так сказал препод…
прогу пишу в линуксе … значит Ctrl-D?
2 июня 2008 в 10:01
Во-первых, тут 2 раза на каждой итерации вызывается getchar(), поэтому если это и будет работать, то получится в 2 раза меньше чем надо.
Во-вторых, есть лишь 2 способа сделать так, чтобы в stdin появился EOF:
– Подать на вход программы текст не с клавиатуры, а через pipe – например, cat file.txt | yourprogram
– Ввести символ конца файла – под досом и виндой это F6 или Ctrl-Z, в линуксе вроде Ctrl-D