singlepost

как посимвольно считывая строку со стандартного входа посчитать сколько в ней символов << На главную или назад  

программа на с++
как посимвольно считывая строку со стандартного входа посчитать сколько в ней символов???
цикл : while(getchar() != EOF) {i++; getchar(); } тупо зависает…. или может быть когда вводим строку нужно в конец добавить какой то символ…. вобщем помогите плиз кто может…

21 ответов в теме “как посимвольно считывая строку со стандартного входа посчитать сколько в ней символов”

  1. 8
    Иван Горбачев ответил:

    Сорри, косякнулся… Спать уже хотел, но я думаю дело не в переменной, а общую идею, которую я донести хотел – поняли :-) )

  2. 7
    Александр Летов ответил:

    2 Иван:
    Код-то хорошо бы проверять! ;)
    У Вас переменная len существует только в цикле.

  3. 6
    Иван Горбачев ответил:

    #include<cstdio>

    using namespace std;

    int main()
    {
    for( int с = 0, len = 0; ( с = getchar() ) != EOF; ++len );
    printf( "%d", len );
    return 0;
    }

  4. 5
    Ogoun Er ответил:

    #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;
    }

  5. 4
    Дмитрий Потапов ответил:

    char c;
    unsigned len=0;
    while(scanf("%c",&c))
    len++;

    по-моему так.

  6. 3
    Алексей Гудым ответил:

    Нужно проверку на конец строки сделать) Ведь в условии сказано что "строка"?

  7. 2
    Елена Туркенич ответил:

    текст мне надо обязательно подавать с клавы … так сказал препод…
    прогу пишу в линуксе … значит Ctrl-D?

  8. 1
    Жека Кирпичев ответил:

    Во-первых, тут 2 раза на каждой итерации вызывается getchar(), поэтому если это и будет работать, то получится в 2 раза меньше чем надо.
    Во-вторых, есть лишь 2 способа сделать так, чтобы в stdin появился EOF:
    – Подать на вход программы текст не с клавиатуры, а через pipe – например, cat file.txt | yourprogram
    – Ввести символ конца файла – под досом и виндой это F6 или Ctrl-Z, в линуксе вроде Ctrl-D

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.