文件的简单操作
路径:
代码:
main.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main()
{
/*
* 打开文件
* FILE *fopen(const char *pathname, const char *mode);
*/
//以追加的方式打开文件
FILE* fp = fopen("a.txt", "a+");
if(fp == NULL)
{
perror("fopen");
return errno;
}
//向文件中追加字符
char string[100];
scanf("%s",string);
int ret = fputs(string, fp);
fputc('\n', fp);
if(ret == 0)
{
perror("fputs");
return errno;
}
//输出文件中的内容
fclose(fp);
fp = fopen("a.txt", "r");
printf("文件中内容为:\n");
char s[1024];
int i =0;
//printf("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__);
while(fgets(s, 1024, fp) != NULL)
{
//printf("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__);
printf("%s",s);
}
//printf("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__);
//关闭文件
int err = fclose(fp);
if(err != 0)
{
perror("fclose");
return errno;
}
return 0;
}
Makefile
main:main.c
gcc -o $@ $^
./$@
clean:
rm main
问题:
以a+打开文件,读取不到数据,以r却可以,这是为什么?
是因为指针指向了文件末尾吗?