0

入力ファイルから文字列を読み取り、それを処理し、母音、子音、数字を 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' の使用 if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || ストリ... ^

esercizio.c:6:16: エラー: 宣言されていない識別子 'i' の使用 if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || ストリ... ^

esercizio.c:6:29: エラー: 宣言されていない識別子 'string' の使用 if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || ストリ... ^

esercizio.c:6:36: エラー: 宣言されていない識別子 'i' の使用 if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || ストリ... ^

esercizio.c:6:49: エラー: 宣言されていない識別子 'string' の使用 if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || ストリ... ^

esercizio.c:6:56: エラー: 宣言されていない識別子 'i' の使用 if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || ストリ... ^

esercizio.c:6:69: エラー: 宣言されていない識別子 'string' の使用 ...== 'a' || 文字列[i] == 'e' || 文字列[i] == 'i' || 文字列[i] == 'o' || セント... ^

esercizio.c:6:76: エラー: 宣言されていない識別子 'i' の使用 ...'a' || 文字列[i] == 'e' || 文字列[i] == 'i' || 文字列[i] == 'o' || ストリン... ^

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: エラー: 期待される式が else if (int string[i]) { ^

esercizio.c:11:15: エラー: 宣言されていない識別子 'string' の使用 fputs(string[i], output2); ^

致命的なエラー: 発生したエラーが多すぎます。すぐに停止します [-ferror-limit=] 20 個のエラーが生成されました。

誰にも指針がありますか?

4

1 に答える 1