о файловых функциях IN C - PullRequest
0 голосов
/ 05 июня 2011

Я имею дело с файловыми функциями, может ли кто-нибудь объяснить мне, как и как работает оператор 2, в следующем коде, здесь я хочу ввести строку, а затем записать ее на диск .....

#include<stdio.h>
#include<sttring.h>
int main()
{
    FILE *fp;
    char s[80];
    fp=fopen("noname00.cpp","w");
    while(strlen(gets(s))>0) /*parenthesis now at correct place*/ /*purpose of this statement */
    {
        fputs(s,fp);
        fputs("\n",fp);
    }
    fclose(fp);
    return 0;
}

Простая, но конкретная помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 05 июня 2011

Какой именно является утверждением 2?char s[80];?Он просто объявляет и определяет символьный массив размером 80.

Если вы имеете в виду утверждение 2, равное while(strlen(gets(s)>0)), мне оно не кажется правильным.strlen () принимает const char * в качестве аргумента, но вместо этого вы указываете целое число: gets(s) > 0.

Также никогда не используйте gets(), поскольку http://c -faq.com / stdio/getsvsfgets.html

Кроме того, получите копию http://en.wikipedia.org/wiki/The_C_Programming_Language и изучите.

0 голосов
/ 05 июня 2011

Цель этого оператора - проверить, не выполнился ли «возврат» из цикла.В противном случае использование может продолжать вводить несколько строк и добавлять в файл более одной строки.Если вы действительно хотите разрешить одну строку, то while {} можно удалить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...