c语言按行读取txt文件,并用字符串保存,遇到空格就将这个字符串转化成等值整型,每行都要写注释
时间: 2024-01-15 07:02:28 浏览: 74
c语言,怎样输出有空格的字符串?.txt
5星 · 资源好评率100%
好的,以下是按行读取txt文件,并用字符串保存,遇到空格就将这个字符串转化成等值整型的C语言代码,每行都有注释:
```c
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp; // 文件指针
char buffer[100]; // 用于存储每行文本的缓冲区
char *token; // 用于存储分割出的字符串
char str[10]; // 用于存储分割出的字符串
int num; // 用于存储转换后的整数
fp = fopen("file.txt", "r"); // 打开文件,只读模式
if (fp == NULL) { // 如果打开文件失败,输出错误信息并退出程序
printf("Failed to open file\n");
return 1;
}
while (fgets(buffer, 100, fp)) { // 逐行读取文件内容,存储到buffer中
token = strtok(buffer, " "); // 每行文本按空格分割,获取第一个字符串
while (token != NULL) { // 如果分割出的字符串不为空
strcpy(str, token); // 将分割出的字符串复制到str中
if (sscanf(str, "%d", &num) == 1) { // 将str中的字符串转换为整数
printf("%d ", num); // 如果转换成功,输出整数
}
token = strtok(NULL, " "); // 获取下一个分割出的字符串
}
}
fclose(fp); // 关闭文件
return 0;
}
```
请注意,这个例子中假设文件中只包含整数和空格,并且每个整数都不超过10位数。如果需要处理其他类型的数据或更长的整数,请适当修改代码。同时,这个例子使用了strtok函数,这个函数在多线程环境下不安全,如果需要在多线程环境下使用,请使用strtok_r函数。
阅读全文