C语言按行读取txt中的字符串
时间: 2023-07-15 13:15:33 浏览: 52
可以使用C标准库函数fgets()按行读取txt中的字符串。fgets()函数的原型为:
```c
char *fgets(char *str, int n, FILE *stream);
```
其中,str是用来存储读取到的字符串的字符数组,n是最多读取的字符数(包括字符串末尾的'\0'),stream是要读取的文件指针。
以下是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
char line[100];
fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("Error opening file.\n");
return 1;
}
while (fgets(line, 100, fp) != NULL) {
printf("%s", line);
}
fclose(fp);
return 0;
}
```
在上面的示例代码中,我们打开了一个名为test.txt的文件,并使用fgets()函数按行读取了其中的字符串。注意,每次读取到的字符串中也包括换行符。
相关问题
c语言读取二进制中的字符串
在C语言中,读取二进制中的字符串可以使用fread函数。具体步骤如下:
1. 打开二进制文件,使用fopen函数,并设置打开模式为"rb"。
2. 确定需要读取的字符串长度,使用malloc函数分配内存空间。
3. 使用fread函数将二进制文件中的字符串读入分配的内存空间中。
4. 关闭文件,使用fclose函数。
以下是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char *str;
long file_size;
// 打开二进制文件
fp = fopen("binary_file", "rb");
if (fp == NULL) {
printf("Error opening file.");
exit(1);
}
// 计算文件长度
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
rewind(fp);
// 分配内存空间
str = (char *)malloc(file_size + 1);
if (str == NULL) {
printf("Memory allocation failed.");
exit(1);
}
// 读取字符串
fread(str, sizeof(char), file_size, fp);
str[file_size] = '\0';
// 关闭文件
fclose(fp);
printf("Read string from file: %s\n", str);
free(str);
return 0;
}
```
注意:读取二进制文件中的字符串时,需要保证文件中的字符串是以'\0'结尾的。否则,读取的字符串可能会出现问题。
c语言按行读取txt文件,并用字符串保存,遇到空格就将这个字符串转化成等值整型
好的,你可以使用C语言中的fopen、fgets和sscanf函数来按行读取txt文件,并用字符串保存,遇到空格就将这个字符串转化成等值整型。以下是一个简单的例子:
```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)) {
token = strtok(buffer, " ");
while(token != NULL) {
strcpy(str, token);
if (sscanf(str, "%d", &num) == 1) {
printf("%d ", num);
}
token = strtok(NULL, " ");
}
}
fclose(fp);
return 0;
}
```
在这个例子中,我们打开了名为file.txt的文件,并使用'r'参数来指示我们只想读取文件。然后,我们使用fgets函数来按行读取文件内容,并将其存储在buffer变量中。我们使用strtok函数来从buffer中分离出每个空格分隔的字符串,并将其存储在token变量中。然后,我们使用strcpy函数将token中的字符串复制到str中,并使用sscanf函数将其转换为整数。如果转换成功,我们将整数打印出来。最后,我们关闭文件。
请注意,我们假设文件中只包含整数和空格,并且每个整数都不超过10位数。如果需要处理其他类型的数据或更长的整数,请适当修改代码。