c语言将文件中除第一行以外的所有行打印为子行。文件中的行长度不超过1000个字符。 输入格式 输入一个文本文件。 输出格式 在输出文件中,将包含第一行的给定文件中的所有行作为子字符串。
时间: 2024-09-19 10:08:46 浏览: 33
在C语言中,可以使用`fgets()`函数逐行读取文件内容,然后跳过第一行,从第二行开始处理。对于每一行,如果行的长度小于等于1000个字符,就将其添加到一个新的字符串中作为子行。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 1000
void print_lines_after_first(const char *filename) {
FILE *input_file = fopen(filename, "r");
if (input_file == NULL) {
printf("Failed to open file %s\n", filename);
return;
}
// 跳过第一行
char line[MAX_LINE_LENGTH + 1];
fgets(line, sizeof(line), input_file);
fseek(input_file, 0, SEEK_SET); // 将指针回滚到开头
char output_string[512]; // 假设最短的子行不会超过这个长度
while (fgets(line, MAX_LINE_LENGTH + 1, input_file)) {
size_t len = strlen(line);
if (len > 0 && line[len - 1] != '\n') { // 去掉换行符
line[len - 1] = '\0';
}
// 如果当前行符合条件,则拼接到output_string
strcat(output_string, line);
strcat(output_string, "\n");
}
fclose(input_file);
FILE *output_file = fopen("output.txt", "w"); // 假设输出文件名是"output.txt"
if (output_file != NULL) {
fprintf(output_file, "%s", output_string);
fclose(output_file);
} else {
printf("Failed to create the output file.\n");
}
}
int main() {
const char *input_filename = "input.txt"; // 输入文件名
print_lines_after_first(input_filename);
return 0;
}
```
阅读全文