本文目录一览:
C语言如何实现对txt文件的读取和写入
使用fopen
的r
方式可以实现读取,用w+
方式可以实现写入。
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
中。
例程:
#include <stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
char c;
int main() {
FILE *fp = NULL; // 需要注意
fp = fopen(F_PATH, "w"); // 创建文件
if (NULL == fp) return -1; // 要返回错误代码
while (scanf("%c", &c) != EOF) fprintf(fp, "%c", c); // 从控制台中读入并在文本输出
fclose(fp);
fp = NULL; // 需要指向空,否则会指向原打开文件地址
return 0;
}
C语言如何读取txt文本里面的内容?
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);
}
怎么用C语言编一个打开txt文件的程序
你可以使用fopen
函数,例子如下:
FILE *fp; /* 定义文件类型的指针,它将指向你所要打开的文件,以后向文件写入数据或者是从文件中读取数据都需要用到他 */
fp = fopen("文件名以及其路径", "打开方式");
建议参考以下几个C函数,你就能够很随意地完成对文件的处理了:
fopen()
- 字符读写函数:
fgetc()
和fputc()
- 字符串读写函数:
fgets()
和fputs()
- 格式化读写函数:
fscanf()
和fprintf()
- 数据块读写函数:
fread()
和fwrite()
这些都是对文件操作的基本函数,其中你最好研究一下fopen()
函数,那个相对其他的函数要记忆的东西比较多。
怎样用C语言写入\读取一个TXT文件
如果预知前面的是英文后面的是中文,即可分开:
#include <stdio.h>
#define N 100
void main() {
FILE *fp;
char s[256], y[N][20], h[N][20];
int i, n;
if (fp = fopen("c:\\data\\text.txt", "r")) {
n = 0;
while (!feof(fp)) {
fgets(s, 256, fp);
sscanf("%s%s", y[n], h[n]);
n++;
if (n == N) break;
}
fclose(fp);
printf("英文: ");
for (i = 0; i < n; i++) printf("%s ", y[i]);
printf("\n");
printf("中文: ");
for (i = 0; i < n; i++) printf("%s ", h[i]);
printf("\n");
} else {
printf("无法打开文件读取。\n");
}
}
如果中英文顺序不一定,且不会有中英文混合单词:
#include <stdio.h>
#include <string.h>
#define N 100
void main() {
FILE *fp;
char s[256], y[N][20], h[N][20];
int i, n;
if (fp = fopen("c:\\data\\text.txt", "r")) {
n = 0;
while (!feof(fp)) {
fgets(s, 256, fp);
sscanf("%s%s", y[n], h[n]);
if (y[n][0] < 0) { strcpy(s, y[n]); strcpy(y[n], h[n]); strcpy(h[n], s); } // 汉字字符ASCII码小于0
n++;
if (n == N) break;
}
fclose(fp);
printf("英文: ");
for (i = 0; i < n; i++) printf("%s ", y[i]);
printf("\n");
printf("中文: ");
for (i = 0; i < n; i++) printf("%s ", h[i]);
printf("\n");
} else {
printf("无法打开文件读取。\n");
}
}
c语言读取txt文件内容
用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作。
一、打开文件:
FILE *fopen(const char *filename, const char *mode);
因为txt文件为文本文件,所以打开时选择的mode
应为"r"
或者"rt"
。
二、读取文件:
读取文件应根据文件内容的格式,以及程序要求,选择读取文件的函数。可以使用一种,也可以几种混用。常用的文件读取函数如下:
fgetc
:从文件中读取一个字节并返回。适用于逐个字节读取。fgets
:从文件中读取一行。适用于整行读取。fscanf
:格式化读取文件,在已经清楚文件存储格式下,可以直接用fscanf
把文件数据读取到对应类型的变量中。fread
:整块读取文件,对于txt文件比较少用。
三、关闭文件:
读取结束后,应调用fclose
函数关闭文件。