Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.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编程? #包括 int main() { 文件*fp; 字符buff[255]; fp=fopen(“test.txt”,“w”); printf(“w模式下的文件test.txt\n”); fprintf(fp,“模板字符串1:\n”); fputs(“模板字符串2:”,fp); printf(“文件test.txt是在本地路径创建的\n\n”); fclose(fp); fp=fopen(“test.txt”、“r”); printf(“\n\n r模式下的file test.txt\n”); fscanf(fp,“%s”,浅黄色); printf(“使用fscanf()的test.txt文件的内容是:\n%s\n”,buff); fgets(buff,255,(文件*)fp); printf(“使用fgets()的test.txt文件的内容是:\n%s\n”,buff); fgets(buff,255,(文件*)fp); printf(“使用fgets()的文件内容是:\n%s\n”,buff); fclose(fp); fp=fopen(“test.txt”,“a”); printf(“\n\n模式中的file test.txt”); fprintf(fp,“模板字符串3:\n”); fgets(buff,255,(文件*)fp); printf(“在附加%s\n之后”,buff); fclose(fp); fp=fopen(“test.txt”、“r+”); printf(“r+模式下的文件test.txt\n”); fgets(buff,255,(文件*)fp); printf(“\n\n文件test.txt在r+模式下的内容是:\n%s\n”,buff); fclose(fp); }_C_File_Append_Fopen - Fatal编程技术网

使用不同模式的文件进行C编程? #包括 int main() { 文件*fp; 字符buff[255]; fp=fopen(“test.txt”,“w”); printf(“w模式下的文件test.txt\n”); fprintf(fp,“模板字符串1:\n”); fputs(“模板字符串2:”,fp); printf(“文件test.txt是在本地路径创建的\n\n”); fclose(fp); fp=fopen(“test.txt”、“r”); printf(“\n\n r模式下的file test.txt\n”); fscanf(fp,“%s”,浅黄色); printf(“使用fscanf()的test.txt文件的内容是:\n%s\n”,buff); fgets(buff,255,(文件*)fp); printf(“使用fgets()的test.txt文件的内容是:\n%s\n”,buff); fgets(buff,255,(文件*)fp); printf(“使用fgets()的文件内容是:\n%s\n”,buff); fclose(fp); fp=fopen(“test.txt”,“a”); printf(“\n\n模式中的file test.txt”); fprintf(fp,“模板字符串3:\n”); fgets(buff,255,(文件*)fp); printf(“在附加%s\n之后”,buff); fclose(fp); fp=fopen(“test.txt”、“r+”); printf(“r+模式下的文件test.txt\n”); fgets(buff,255,(文件*)fp); printf(“\n\n文件test.txt在r+模式下的内容是:\n%s\n”,buff); fclose(fp); }

使用不同模式的文件进行C编程? #包括 int main() { 文件*fp; 字符buff[255]; fp=fopen(“test.txt”,“w”); printf(“w模式下的文件test.txt\n”); fprintf(fp,“模板字符串1:\n”); fputs(“模板字符串2:”,fp); printf(“文件test.txt是在本地路径创建的\n\n”); fclose(fp); fp=fopen(“test.txt”、“r”); printf(“\n\n r模式下的file test.txt\n”); fscanf(fp,“%s”,浅黄色); printf(“使用fscanf()的test.txt文件的内容是:\n%s\n”,buff); fgets(buff,255,(文件*)fp); printf(“使用fgets()的test.txt文件的内容是:\n%s\n”,buff); fgets(buff,255,(文件*)fp); printf(“使用fgets()的文件内容是:\n%s\n”,buff); fclose(fp); fp=fopen(“test.txt”,“a”); printf(“\n\n模式中的file test.txt”); fprintf(fp,“模板字符串3:\n”); fgets(buff,255,(文件*)fp); printf(“在附加%s\n之后”,buff); fclose(fp); fp=fopen(“test.txt”、“r+”); printf(“r+模式下的文件test.txt\n”); fgets(buff,255,(文件*)fp); printf(“\n\n文件test.txt在r+模式下的内容是:\n%s\n”,buff); fclose(fp); },c,file,append,fopen,C,File,Append,Fopen,我有我理解的上述代码。我怀疑当我附加字符串“Template string 3:”时,我的fp将内容添加到文件末尾的文件test.txt,添加fp后应该指向文件末尾(我希望如此),但如果我使用fgets将文件内容从fp读取到buff,它应该有什么。谁能解释一下此刻发生了什么 C库函数char*fgets(char*str,int n,FILE*stream)从指定流中读取一行,并将其存储到str指向的字符串中。当读取(n-1)个字符、读取换行符或到达文件结尾时(以先到者为准),该函数停止 这就是

我有我理解的上述代码。我怀疑当我附加字符串“Template string 3:”时,我的fp将内容添加到文件末尾的文件
test.txt
,添加fp后应该指向文件末尾(我希望如此),但如果我使用
fgets
将文件内容从fp读取到buff,它应该有什么。谁能解释一下此刻发生了什么


C库函数
char*fgets(char*str,int n,FILE*stream)
从指定流中读取一行,并将其存储到str指向的字符串中。当读取(n-1)个字符、读取换行符或到达文件结尾时(以先到者为准),该函数停止

这就是为什么代码的最后一部分只显示文件的第一行。以及您没有获得
printf输出的原因(“在附加%s\n之后”,buff)
表示此时文件指针位于
EOF


当您
cat
文件时,您会看到所有的行都在那里。

请不要发布文本的图片定义为
file*fp使用
(文件*)fp
是“无害的”,但很可笑。
#include<stdio.h>
int main()
{
    FILE *fp;
    char buff[255];

    fp=fopen("test.txt","w");

    printf("File test.txt in w mode\n");
    fprintf(fp,"Template string 1:\n");

    fputs("Template string 2:",fp);
    printf("File test.txt is created at local path\n\n");
    fclose(fp);

    fp=fopen("test.txt","r");
    printf("\n\nFile test.txt in r mode\n");
    fscanf(fp,"%s",buff);
    printf("The content of the file test.txt using fscanf() is:\n%s\n",buff);

    fgets(buff,255,(FILE *)fp);
    printf("The content of the file test.txt using fgets() is :\n%s\n",buff);

    fgets(buff,255,(FILE *)fp);
    printf("The content of the file using fgets() is :\n%s\n",buff);
    fclose(fp);

    fp=fopen("test.txt","a");
    printf("\n\nFile test.txt in a mode\n");
    fprintf(fp,"Template String 3:\n");
    fgets(buff,255,(FILE *)fp);
    printf("After append %s\n",buff);
    fclose(fp);

    fp=fopen("test.txt","r+");
    printf("File test.txt in r+ mode\n");
    fgets(buff,255,(FILE *)fp);
    printf("\n\nThe content of the file test.txt in r+ mode is:\n%s\n",buff);
    fclose(fp);
}