C语言如何读取txt文本里面的内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何读取txt文本里面的内容?相关的知识,希望对你有一定的参考价值。
我是这样写的,但是总是无法打开, 请问这个是否用加文件路径,如果不加路径,文件放在哪里?
if((fp=fopen("源程序.txt","r"))==NULL)
printf("源程序无法打开!\n");
C语言可以使用fopen()函数读取txt文本里。
示例:
#include <stdio.h>
FILE *stream, *stream2;
void main( void )
int numclosed;
/* Open for read (will fail if file "data" does not exist) */
if( (stream = fopen( "data", "r" )) == NULL )
printf( "The file 'data' was not opened\\n" );
else
printf( "The file 'data' was opened\\n" );
/* Open for write */
if( (stream2 = fopen( "data2", "w+" )) == NULL )
printf( "The file 'data2' was not opened\\n" );
else
printf( "The file 'data2' was opened\\n" );
/* Close stream */
if(fclose( stream2 ))
printf( "The file 'data2' was not closed\\n" );
/* All other files are closed: */
numclosed = _fcloseall( );
printf( "Number of files closed by _fcloseall: %u\\n", numclosed );
扩展资料
使用fgetc函数
#include <stdio.h>
#include <stdlib.h>
void main( void )
FILE *stream;
char buffer[81];
int i, ch;
/* Open file to read line from: */
if( (stream = fopen( "fgetc.c", "r" )) == NULL )
exit( 0 );
/* Read in first 80 characters and place them in "buffer": */
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
buffer[i] = (char)ch;
ch = fgetc( stream );
/* Add null to end string */
buffer[i] = '\\0';
printf( "%s\\n", buffer );
fclose( stream );
参考技术A在C语言中,文件操作都是由库函数来完成的。
要读取一个txt文件,首先要使用文件打开函数fopen()。
fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。
其次,使用文件读写函数读取文件。
在C语言中提供了多种文件读写的函数:
·字符读写函数 :fgetc和fputc
·字符串读写函数:fgets和fputs
·数据块读写函数:freed和fwrite
·格式化读写函数:fscanf和fprinf
最后,在文件读取结束要使用文件关闭函数fclose()关闭文件。
下面以格式化读写函数fscanf和fprintf为例,实现对文件A.txt(各项信息以空格分割)的读取,并将它的信息以新的格式(用制表符分割各项信息)写入B.txt,实现对A.txt的处理。
C语言源程序如下所示:
#include <stdlib.h>
#include <assert.h>
typedef struct student
char name[32];
int no;
char sex[16];
float score;
stu;
int main(int argc, char* argv[])
//打开文件
FILE * r=fopen("A.txt","r");
assert(r!=NULL);
FILE * w=fopen("B.txt","w");
assert(w!=NULL);
//读写文件
stu a[128];
int i=0;
while(fscanf(r,"%s%d%s%f",a[i].name,&a[i].no,a[i].sex,&a[i].score)!=EOF)
printf("%s\\t%d\\t%s\\t%g\\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到显示器屏幕
fprintf(w,"%s\\t%d\\t%s\\t%g\\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到文件B.txt
i++;
//关闭文件
fclose(r);
fclose(w);
system("pause");
return 0;
编译运行后的结果如下:
1、打开电脑上要读取的文本文件。
2、打开文本后,点击文本左上角的【文件】按钮。
3、点击【另存为】。这样就会保存本来的这个文本文件,生成一个新的c文件。
4、点击【保存类型-对应的下拉按钮】。
5、选择【C source file(*.c)】。这个就是我们需要转换成C格式的后缀。
6、选择后,点击【保存】。保存后我们即可正常读取该文件了。
参考技术C 如果不加路径,比如一个main.c文件的代码是这样的:if((fp=fopen("源程序.txt","r"))==NULL)
printf("源程序无法打开!\n");
如果你是在调试时候运行的, 那么"源程序.txt"就是在main.c同一个文件夹下.如果是直接运行程序,则"源程序.txt"是在main.exe同一个文件夹下.
注意,如果指定文件的绝对路径,比如 d:\源程序.txt ,在代码中应该写成这样: d:\\源程序.txt
还有疑问请追问..本回答被提问者采纳 参考技术D 亲 你得首先定义一个文件File 然后再判断是否open
C语言如何读取TXT全部字符?
参考技术A 你可以使用输入输出重定向来将TXT文本中的字符内容导入程序中,或者使用标准C库函数:fopen()和fgetc();先使用fopen()函数打开TXT文本文件,然后使用fgetc读取文本文件中的字符。读取全部文本中全部字符可以使用一个while循环加判断是否读取到文件结尾来实现:
char
ch;
while((ch=
fgetc(fp))
!=
EOF)
这样当读取到文件结尾时,while循环就会终止。
以上是关于C语言如何读取txt文本里面的内容?的主要内容,如果未能解决你的问题,请参考以下文章