我想知道白色空格是否在txt
文件中为C占用空间。例如,如果我要使用fseek()
取回文件指针,或者我是转到fscanf
来自文件的输入我需要考虑空格吗?甲
假设文件包含以下行:
michael 100 20 simon 200 30 daniel 300 100
如果我想循环扫描文件中的第一个数据
fscanf(fp,"%s%d%d",structure[i].name,&structure[i].number1,&structure[i].number2);
或
fscanf(fp,"%s %d %d ",structure[i].name,&structure[i].number1,&structure[i].number2);
另外,在取回文件指针时是否需要考虑这些空格?例如,到达文件中的第二个人
fseek(fp,-sizeof(structure[i-1]),SEEK_CUR)
或
fseek(fp,-(sizeof(structure[i-1])+3),SEEK_CUR)//for there are 3 white spaces for each person.
答案 0 :(得分:1)
关于第一个问题:不,O(n)
中不需要考虑空格。
关于你的第二个问题:这些都不会奏效。您似乎误解了信息如何存储在计算机中。在程序中,一个整数是32位(4字节),因此fscanf()
将始终返回4.在一个文件中,每个字符都是一个字节,所以" 314"占用3个字节," 314159"需要6.因此,通常不建议将sizeof(int)
和fscanf
/ fseek
混合使用。