0

私はファイルからこのテキストを読んでいます:

file1: file2,file3,file4
file10: testfile.h
file1: file9

そしてそれを分割します

while(fscanf(fp,"%[^:]: %s",map[i].name, map[i].filesNeeded) == 2)
{
    printf("%s %s",map[i].name, map[i].filesNeeded);
    i++;
}

問題は、2番目と3番目の変数が先頭の改行文字で保存されることです。

Details:{name = "\\nfile10", '\\000' <repeats 56 times>, filesNeeded = "testfile.h", '\\000' <repeat

先頭の改行文字なしで保存するにはどうすればよいですか?

4

1 に答える 1

2

スペースを追加する" %[^:]: %s "

while(fscanf(fp," %[^:]: %s ",map[i].name, map[i].filesNeeded) == 2)

scanfのスペースは、スペース文字、タブ文字、改行文字を吸収します

于 2012-11-13T08:46:26.930 に答える