Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C&;中的磁盘读写;垃圾值_C_File_Char - Fatal编程技术网

C&;中的磁盘读写;垃圾值

C&;中的磁盘读写;垃圾值,c,file,char,C,File,Char,我正在试验fread()和fwrite(),遇到了一些问题 我的代码主要如下所示: //write back to file char buffers[sizeof(char)*4]; FILE *fp = fopen("test", "wb"); char data[] = {'C', 'S', 'C'}; fwrite(data, sizeof(char), sizeof(data)/sizeof(char), fp); fread(buffers, sizeof(char), size

我正在试验fread()和fwrite(),遇到了一些问题

我的代码主要如下所示:

//write back to file
char buffers[sizeof(char)*4];

FILE *fp = fopen("test", "wb");
char data[] = {'C', 'S', 'C'};
fwrite(data, sizeof(char), sizeof(data)/sizeof(char), fp);

fread(buffers, sizeof(char), sizeof(buffers)/sizeof(char), fp);

for (int i = 0; i<sizeof(buffers); i++) {
    printf("%c", buffers[i]);
}
//写回文件
字符缓冲区[sizeof(char)*4];
文件*fp=fopen(“测试”、“wb”);
字符数据[]={C',S',C'};
fwrite(数据,大小写(char),大小写(data)/大小写(char),fp);
fread(缓冲区,sizeof(char),sizeof(缓冲区)/sizeof(char),fp);

对于(int i=0;i)您需要关闭文件并重新打开以进行读取。旁白:
sizeof(char)
根据定义是
1
。如果您想从文件中读取,则需要指定“w+”。此外,C11草案标准n1570:7.21.5.3当以更新模式打开文件时,fopen函数7(“+”作为上述模式参数值列表中的第二个或第三个字符),可以在相关流上执行输入和输出。但是,如果没有对fflush函数或文件定位函数(fseek、fsetpos或rewind)的中间调用,输出后不得直接跟在输入后面,输入后不应直接跟随输出,而无需对文件定位函数进行中间调用,[…]@johnnympp当我关闭(fp)并用fp=fopen(“test”,“rb+”)再次打开它时,它在末尾确实给出了正确的答案,但在前面有其他垃圾值(即x;?-?p+$?)。检查
fread()
的返回值。您需要关闭文件并重新打开以进行读取。旁白:
sizeof(char)
根据定义是
1
。如果您要从文件中读取,则需要指定“w+”。此外,C11草案标准n1570:7.21.5.3当以更新模式打开文件时,fopen函数7(“+”作为上述模式参数值列表中的第二个或第三个字符),可以在相关流上执行输入和输出。但是,如果没有对fflush函数或文件定位函数(fseek、fsetpos或rewind)的中间调用,输出后不得直接跟在输入后面,输入后不应直接跟随输出,而无需对文件定位函数进行中间调用,[…]@johnnympp当我关闭(fp)并用fp=fopen(“test”,“rb+”)再次打开它时,它在末尾确实给出了正确的答案,但在前面有其他垃圾值(即x;?-?p+$?).检查
fread()的返回值