白色空间是否在txt文件中占用空间?

时间:2015-05-19 19:29:50

标签: c file-io whitespace scanf

我想知道白色空格是否在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.

1 个答案:

答案 0 :(得分:1)

关于第一个问题:不,O(n)中不需要考虑空格。

关于你的第二个问题:这些都不会奏效。您似乎误解了信息如何存储在计算机中。在程序中,一个整数是32位(4字节),因此fscanf()将始终返回4.在一个文件中,每个字符都是一个字节,所以" 314"占用3个字节," 314159"需要6.因此,通常不建议将sizeof(int)fscanf / fseek混合使用。