2012-11-13 130 views
0

我讀從文件這樣的文字:C:的fscanf麻煩,包括換行符

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++; 
} 

的問題是,第二和第三個變量保存與領先換行符:

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

如何在不帶引號的換行符的情況下保存它?

回答

2

" %[^:]: %s "

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

在scanf的空間增加空間吸收空格字符,製表字符,新行字符