0

ユーザーにテキストを書いてもらい、このテキストをファイルに保存する C プログラムを作成したいと考えています。

これは私が試したコードです:

FILE* fichier = NULL;
fichier = fopen("filePath","a+");
printf("entrer le texte : ");
scanf("%s",txt);
fputs(nomFichier,txt);

問題は、ユーザーがキャリッジ リターンのあるテキストを作成したい場合、コンパイラは最初のキャリッジ リターンの前のテキストのみを読み取ることです。

初めてファイルを作成するときに、テキスト エディターを使用してファイルを開く方法はありますか。ユーザーがそのテキスト エディターを閉じるまで、プログラムは保留されます。

4

1 に答える 1

0

テキスト エディター (プラットフォームに依存しないで行うのは非常に困難です) を開く代わりに、プログラムで複数行のテキスト入力を読み取ることができます。

char txt[1024];
FILE* fichier = NULL;
fichier = fopen("filePath","a+");
printf("enter the text (end with an empty line): ");
while(!feof(stdin)) {
    fgets(txt, 1024, stdin);
    if(strlen(txt) == 0) break;
    fputs(txt, fichier);
}

このようにして、ユーザーは改行を使用してテキストを入力でき、すべての行がテキスト ファイルに保存されます。

于 2013-09-27T10:43:02.837 に答える