0

入力ファイルから読み取ることができるように、ファイルにメモリを割り当てました。

((mem = (unsigned char *) malloc (filesize)) == NULL)

メモリ(技術的にはファイル)から読み取っています。このループは、メモリの内容を読み取り、各文字を別の出力ファイルに書き込みますが、あらかじめ設定された制限までだけ、次の行に書き込み続けます (各行のデフォルトは 40)。私はそれを正しく読み書きし、各行を40で折り返しましたが、入力ファイルには長さの異なる複数の行があり、新しいファイルへの書き込みには「\ n」(改行)が含まれているため、複数の行が作成されます行の長さは 40 以下です。"\n" があるかどうかを確認してスキップする必要があります。

これは私の問題です。"\n" をクリックしたかどうかを確認する方法がわかりません。

これが私の悲しい試みです(ループの一部):

fread(mem, 1,filesize, inf);
for(i=0; i < filesize; i++)
{
*temp = mem[i];
    if (!strcmp(temp,"\n"));
        {
            i++;
        }
4

1 に答える 1

1

memは文字の動的配列であるため、問題の文字を確認してください。

for(i=0; i < filesize; i++)
{
    if (mem[i] != '\n')
    {
         //   do stuff
    }
    //else it's a newline, don't do anything and we'll skip it when i increments next
}

声明の;後にあることに気づきましたか?if

于 2012-12-07T19:15:17.010 に答える