c语言怎样从文件中输出内容
Ⅰ c语言中如何将保存文件中的信息输出来
你如果不知道文件的格式,那没法输出,你如果知道格式,把信息从文件中读出来,再依照格式来处理就能够了
Ⅱ C语言:在当前目录下的文件中查找记录并输出到屏幕,咋编
代码文本:
#include "stdio.h"
#include <string.h>
struct STU{
char nm[21],id[12];
int s[5];
};
int main(int argc,char *argv[]){
struct STU stu;
char ts[21];
FILE *fp;
if(fp=fopen("stu.dat","r")){
printf("Please enter a name or ID... ");
scanf("%20s",ts);
printf(" To find the result is: ");
while(fscanf(fp,"%s%s%d%d%d%d%d",stu.nm,stu.id,stu.s,stu.s+1,stu.s+2,stu.s+3,stu.s+4)!=EOF)
if(strcmp(ts,stu.nm)==0 || strcmp(ts,stu.id)==0){
printf(" %s %s%4d%4d%4d%4d%4d ",stu.nm,stu.id,stu.s[0],stu.s[1],stu.s[2],stu.s[3],stu.s[4]);
fclose(fp);
return 0;
}
printf("Not find... ");
fclose(fp);
}
else
printf("Open the file failure, exit... ");
return 0;
}
Ⅲ 如何用c语言输出一个文件中的数据
循环读取文件 显示在屏幕上即可。
FILE*fp=fopen("a.txt","r");
intc;
while((c=fgetc())!=EOF)
putchar(c);
fclose(fp);
这个是逐个字节读取输出的。
Ⅳ 怎样用C语言输出一文件的内容
无法直接输出文件内容,需要先将文件读入到内存,再输出到标准输出上。
可以采用逐个字符读入,每读入一个输出一个的方式。
区分文件类型,操作有所不同。
1 文件本身为文本文件,那么逐个直接输出即可。
FILE *fp = fopen("name.txt", "r");
int c;
while((c=fgetc(fp))!=EOF) putchar(c);
2 文件为二进制文件,直接输出结果会是乱码。这时需要输出二进制值,并自行换行,使得输出美观。
FILE *fp = fopen("name.bin", "rb");
int c;
int i = 0;
while((c=fgetc(fp))!=EOF)
{
printf("0x%02X,", c);//16进制方式输出字符。
i++;
if(i%8==0) printf("\n"); //每输出8个字符换行一次。
}
Ⅳ C语言中如何输出文件中的指定行全部内容
先用将文件中所有内容读到二维字符数组buf[][]中。
要输出第x行的内容,直接输出buf[x-1]即可
全部读入还有一个好处,当要修改文件内容时,先读入数组,在数组中做修改,再写回文件,远比在文件中直接修改方便得多。
#include<stdio.h>
#defineM10010
#defineN256
charbuf[M][N];
intmain(){
FILE*file;
charfileName[50]="in.txt";//文件名
//读入
file=fopen(fileName,"r");//打开文件
if(file==NULL)//打开文件失败
return1;
intn=0;
while(fgets(buf[n],N,file)!=NULL){//依次读取文件内容,第n+1行读到buf[n]中,直到读到文件结束
n++;
}
fclose(file);//关闭文件
//显示第x行
inti,x;
scanf("%d",&x);//读入要显示的是第几行
printf("%s",buf[x-1]);//显示该行
//修改
buf[0][0]='X';
//...
//写回
file=fopen(fileName,"w");//打开文件
if(file==NULL)//打开失败
return1;
for(i=0;i<n;i++)//buf中的内容写到文件
fprintf(file,"%s",buf[i]);
fclose(file);//关闭并保存文件
return0;
}
Ⅵ c语言如何读取文件并输出
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。
2、例程:
#include<stdio.h>
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打开输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
Ⅶ C语言如何从文本文件中输出指定行文字
提供一个思路
ascii表示的符号范围。
你可以判断字符串,是否为ascii码,是忽略。
不是,输出。
上面的变量还应该定义一些操作字符串的指针。
相关有关编码信息参考以下babybubble网络知道:
c/c++支持的是ascii,不过汉字编码中,gb2312与ascii是兼容的,所以可以在c中获得汉字的gb2312编码
gb2312是两个字节的,第一字节是高八位,第二字节是低八位,比如下面的程序:
#include
#include
int
main()
{
char
a[5];
strcpy(a,"啊");
printf("%xh
%xh\n",(unsigned
char)a[0],(unsigned
char)a[1]);
return
0;
}
a[0]是“啊”字的高八位,a[1]是低八位,程序运行结果是a[0]=b0
a[1]=a1,用16进制表示的,所以“啊”字的gb2312编码是b0a1了~
输出时要强制转换成unsigned
char,不然就变成负数了,因为编码是以8位的无符号整数为单位的
当然也可以转成10进制啦,比如
int
b;
b=(unsigned
char)a[0]*256+(unsigned
char)a[1];
b即为汉字的10进制gb2312编码了
Ⅷ c语言怎么把东西写到文件里,再从文件输出到屏幕上
用WritePrivateproFileString()和GetPrivateproFileString()两个函数就可以了啊,不用打开文件,关闭文件,定位,移动文件指针之类的
为防止有人说C下不能用, 特写一个简单的
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
structSTRUCT
{
charname[20];
floatchinese;
floatmath;
};
charfilename[]={"z:\1.txt "};
structSTRUCTs[3];
intcount=0;
intmain()
{
inti;
for(i=0;i<3;i++)
{
printf(" 请输入第%d个学生信息(姓名语文数学)用空格间隔: ",i+1);
fflush(stdin);
scanf("%s%f%f",s[i].name,&s[i].chinese,&s[i].math);
}
chartemp[3];
charstr[20];
WritePrivateProfileStringA("All","count","3",filename);
for(i=0;i<3;i++)
{
sprintf(temp,"%d",i+1);
WritePrivateProfileString(temp,"name",s[i].name,filename);
sprintf(str,"%.1f",s[i].chinese);
WritePrivateProfileString(temp,"chinese",str,filename);
sprintf(str,"%.1f",s[i].math);
WritePrivateProfileString(temp,"math",str,filename);
}
return0;
}
Ⅸ C语言怎样将文本文件中的内容读取打印
使用文件操作函数fopen,fscanf即可。
1.fopen的函数原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,允许读数据。
rw+
读写打开一个文本文件,允许读和写。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的EOF符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
wt+
读写打开或着建立一个文本文件;允许读写。
at+
读写打开一个文本文件,允许读或在文本末追加数据。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b
字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
2.例程:
#include<stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
char c;
int main(){
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp) return -1;//要返回错误代码
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return 0;
}
Ⅹ C语言中,如何将文本文件的内容输出到屏幕
#include <stdio.h>
#define MAX 50 /* 文件名长度最大为 MAX 个字符 */
#define BUFFERLEN /* 文件缓冲区长度最大为 BUFFERLEN 个字符 */
void main( )
{
FILE * fpr ; /* 定义一个文件指针变量 fpr */
char my_filename[MAX], buffer[BUFFERLEN] ;
gets(my_filename) ; /* 从键盘上输入要打开的文本文件名 */
fpr = fopen(my_filename, "r" ) ; /* r:以文本方式打开文件 */
if( fpr == NULL ) /* 若文件打开失败,则输出错误信息,并直接退出程序 */
{
printf("Can't open %s for read !\n", my_filename ) ;
exit(1) ;
}
fgets(buffer, BUFFERLEN, fpr ) ; /* 从文本文件中读取一行数据 */
while( !feof(fpr) ) /* 当文件没有结束时,输出一行文本内容到屏幕 */
{
printf("%s", buffer) ;
fgets(buffer, 500, fpr) ; /* 再从文本文件中读取下一行数据 */
}
fclose(fpr) ; /* 当整个文件内容读取结束时,关闭文件指针 */
}