繁体   English   中英

澄清用C语言读写文件

[英]Clarification on reading and writing files in C

我花了几个小时试图弄清楚如何从输入文件中读取字符串,对其进行处理以及在3个不同的输出文件中写入元音,辅音和数字。 这是我到达的代码:

void discriminator(input, output1, output2, output3) {

    if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || string[i] == 'o' || string[i] == 'u' || ) {
        fputs(string[i], output1);
        i = i + sizeof(string[i]);
    }
    else if (int string[i]) {
        fputs(string[i], output2);
        i = i + sizeof(string[i]);
    }
    else {
        fputs(string[i], output3);
        i = i + sizeof(string[i]);
    }
}

int main() {

    FILE *inFile = fopen("input.txt","r");
    FILE *outVocali = fopen("outputVocali.txt", "w");
    FILE *outNumeri = fopen("outputNumeri.txt", "w");
    FILE *outConsonanti = fopen("outputConsonanti.txt", "w");

    char *string;
    char *fgets(string, EOF, inFile);
    int i = 0;

    while(fgets(string, EOF, inFile)) {
                discriminator(inFile, outVocali, outNumeri, outConsonanti);
    }

    fclose(inFile);
    fclose(outVocali);
    fclose(outNumeri);
    fclose(outConsonanti);

    return 0;
}

这是编译器写的:

esercizio.c:6:9:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^

esercizio.c:6:16:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^

esercizio.c:6:29:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^

esercizio.c:6:36:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^

esercizio.c:6:49:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^

esercizio.c:6:56:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^

esercizio.c:6:69:错误:使用了未声明的标识符'string'... =='a'|| 字符串[i] =='e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 圣... ^

esercizio.c:6:76:错误:使用未声明的标识符'i'...'a'|| 字符串[i] =='e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| Strin ... ^

esercizio.c:6:89:错误:使用未声明的标识符'string'... =='e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 字符串[i] =='u'|| ){^

esercizio.c:6:96:错误:使用未声明的标识符'i'...'e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 字符串[i] =='u'|| ){^

esercizio.c:6:109:错误:预期表达式...'e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 字符串[i] =='u'|| ){^

esercizio.c:7:15:错误:使用未声明的标识符'string'fputs(string [i],output1); ^

esercizio.c:7:22:错误:使用未声明的标识符'i'fputs(string [i],output1); ^

esercizio.c:8:9:错误:使用未声明的标识符'i'i = i + sizeof(string [i]); ^

esercizio.c:8:13:错误:使用未声明的标识符'i'i = i + sizeof(string [i]); ^

esercizio.c:8:24:错误:使用未声明的标识符'string'i = i + sizeof(string [i]); ^

esercizio.c:8:31:错误:使用未声明的标识符'i'i = i + sizeof(string [i]); ^

esercizio.c:10:14:错误:预期表达式,如果(int string [i]){^

esercizio.c:11:15:错误:使用未声明的标识符'string'fputs(string [i],output2); ^

致命错误:发出了太多错误,现在停止[-ferror-limit =]产生20个错误。

有人有指针吗?

这是您的整个程序吗? 什么是#include行? 我看到的一个问题是char *string不分配内存。 还有,下一行

while(fgets(stringa, EOF, inFile)) { 

引用不存在的变量stringa。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM