windows C语言获取某个文件的所有字符串不会因为换行符而终止
时间: 2023-07-29 13:10:39 浏览: 86
转义符,ASII码对照表,字符字符串区别,数据类型转换
5星 · 资源好评率100%
可以使用C语言中的文件操作函数逐行读取文件内容,然后将每行读取的字符串拼接到一起,这样就可以获取某个文件的所有字符串而不会因为换行符而终止。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFER_SIZE 1024
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <filename>\n", argv[0]);
return EXIT_FAILURE;
}
char buffer[BUFFER_SIZE];
char *result = NULL;
size_t result_size = 0;
FILE *fp = fopen(argv[1], "r");
if (fp == NULL) {
perror("fopen");
return EXIT_FAILURE;
}
while (fgets(buffer, BUFFER_SIZE, fp) != NULL) {
size_t buffer_size = strlen(buffer);
result = realloc(result, result_size + buffer_size + 1);
if (result == NULL) {
perror("realloc");
return EXIT_FAILURE;
}
memcpy(result + result_size, buffer, buffer_size);
result_size += buffer_size;
}
fclose(fp);
if (result != NULL) {
result[result_size] = '\0';
printf("%s", result);
free(result);
}
return EXIT_SUCCESS;
}
```
这个程序会从命令行参数中获取文件名,然后逐行读取文件内容,将每行读取的字符串拼接到一起,最后输出整个文件的内容。注意,在拼接字符串时,需要使用`realloc`函数来动态分配内存,以便存储整个文件的内容。
阅读全文