如:
fscanf(fp,
"%d",
&num)
//从文件fp读入一个整数到num变量
fprintf(fp,
"%d",
num)
//将num变量的值输出到文件fp
屏幕也可以看作一个文件流,输入是stdin,输出是stdout,如输出到屏幕,就是:
fprintf(stdout,
"%d",
num)
先用将文件中所有内容读到二维字符数组buf[][]中。
要输出第x行的内容,直接输出buf[x-1]即可
全部读入还有一个好处,当要修改文件内容时,先读入数组,在数组中做修改,再写回文件,远比在文件中直接修改方便得多。
#include <stdio.h>#define M 10010
#define N 256
char buf[M][N]
int main(){
FILE *file
char fileName[50] = "in.txt"//文件名
//读入
file = fopen(fileName, "r")//打开文件
if(file == NULL) //打开文件失败
return 1
int n = 0
while(fgets(buf[n], N, file) != NULL){//依次读取文件内容,第n+1行读到buf[n]中,直到读到文件结束
n++
}
fclose(file)//关闭文件
//显示第x行
int i, x
scanf("%d", &x)//读入要显示的是第几行
printf("%s", buf[x-1])//显示该行
//修改
buf[0][0] = 'X'
//...
//写回
file = fopen(fileName, "w")//打开文件
if(file == NULL)//打开失败
return 1
for(i = 0 i < n i++)//buf中的内容写到文件
fprintf(file, "%s", buf[i])
fclose(file)//关闭并保存文件
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)