ファイルを読み込もうとしていて、新しい行に到達するまで各文字を読み込んで、その行で何らかの作業を行います。これが私がこれまでに行ったことです:
char line[] = "";
char *charcter = "";
//If i do this here it works fine, but below it's not working at all
charcter = "asssss";
strcat(line,charcter);
//Read file
inputFile = fopen(fileName,"r");
if (inputFile)
{
while ((charcter = (char)getc(inputFile)) != EOF)
strcat(line,charcter); //This piece code keeps crashing my program on run
fclose(inputFile);
}
私は C# 開発者ですが、このことを理解できないことに本当に不満を感じています。助けてください。
編集:
ピースラインを変更し、次のようにメモリを割り当てました。
char *line = (char*)malloc( 400 *sizeof(char));
これで、while ループの strcat が機能しますが、すべての値を取得した後にクラッシュします (入力は割り当てられたメモリよりもはるかに小さい)。同じ strcat ステートメントを if ステートメント内に配置すると、最初の文字が取得されてからクラッシュします。
ここで何が問題なのですか?