C r+;和a+;在福彭?
我不明白c中fopen中r+和a+的实际区别是什么。有人能帮我吗?C r+;和a+;在福彭?,c,file,io,C,File,Io,我不明白c中fopen中r+和a+的实际区别是什么。有人能帮我吗?r+将打开一个文件进行读写。如果文件不存在,它将失败fseek可用于读取和写入文件中的任何位置 w+将打开一个文件进行读写。如果文件不存在,它将创建该文件;如果文件确实存在,它将销毁并重新创建该文件fseek可用于读取文件中的任何位置 a+将打开一个文件进行读写。如果文件不存在,它将创建该文件fseek可用于读取文件中的任何位置,但无论对fseek进行任何调用,写入操作都将始终附加到文件的末尾 r打开文本文件进行阅读。该流位于
r+
将打开一个文件进行读写。如果文件不存在,它将失败fseek
可用于读取和写入文件中的任何位置
w+
将打开一个文件进行读写。如果文件不存在,它将创建该文件;如果文件确实存在,它将销毁并重新创建该文件fseek
可用于读取文件中的任何位置
a+
将打开一个文件进行读写。如果文件不存在,它将创建该文件fseek
可用于读取文件中的任何位置,但无论对fseek
进行任何调用,写入操作都将始终附加到文件的末尾
- r打开文本文件进行阅读。该流位于 文件的开头
- r+打开阅读和写作。该流位于 文件的开头
- w将文件截断为零长度或创建用于写入的文本文件。 流位于文件的开头
- w+打开阅读和写作。如果创建了该文件,则会创建该文件 不存在,否则将被截断。这条小溪很深 位于文件的开头
- a打开以进行追加(在文件末尾写入)。文件是 如果不存在,则创建。该流位于 文件的结尾
- a+打开以进行读取和追加(在文件末尾写入)。这个 如果文件不存在,则创建该文件。初始文件 读取的位置在文件的开头,但是 输出总是附加到文件的末尾
fp = fopen("file.txt", "a+");
fprintf(fp, "%s %s %s %d", "This", " is ", "test ticket ", 10001);
fflush(fp);
fclose(fp);
fp = fopen("file.txt", "a+");
fprintf(fp, "%s %s %s %d", "This", " is ", "test ticket ", 10002);
fflush(fp);
fclose(fp);
fp = fopen("file.txt", "a+");
fprintf(fp, "%s %s %s %d", "This", " is ", "test ticket ", 10003);
fflush(fp);
fclose(fp);
我们会得到
这是测试票这是测试票这是
测试票10003
每一个调用都会附加一个引用
读取:打开文件进行输入操作。该文件必须存在“r”
写入:为输出操作创建一个空文件。如果已存在同名文件,则会丢弃其内容,并将该文件视为新的空文件“w”
附加:打开文件以在文件末尾输出。输出操作总是在文件末尾写入数据,并将其展开。忽略重新定位操作(fseek、fsetpos、倒带)。如果文件不存在,则创建该文件“a”
读取/更新:打开文件进行更新(输入和输出)。该文件必须存在“r+”
写入/更新:创建一个空文件并打开它进行更新(用于输入和输出)。如果已存在同名文件,则丢弃其内容,并将该文件视为新的空文件“w+”
追加/更新:打开一个文件进行更新(输入和输出),所有输出操作都在文件末尾写入数据。重新定位操作(fseek、fsetpos、rewind)会影响下一个输入操作,但输出操作会将位置移回文件末尾。如果文件不存在,则创建该文件“a+”
fp = fopen("file.txt", "a+");
fprintf(fp, "%s %s %s %d", "This", " is ", "test ticket ", 10001);
fflush(fp);
fclose(fp);
fp = fopen("file.txt", "a+");
fprintf(fp, "%s %s %s %d", "This", " is ", "test ticket ", 10002);
fflush(fp);
fclose(fp);
fp = fopen("file.txt", "a+");
fprintf(fp, "%s %s %s %d", "This", " is ", "test ticket ", 10003);
fflush(fp);
fclose(fp);