可以使用文件操作和字符串处理函数来实现将读取的文件内容去掉空白的内容,然后将其连起来的功能。下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void removeWhitespace(char* str) {
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++) {
if (str[i] != ' ' && str[i] != '\t' && str[i] != '\n') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
FILE* file = fopen("input.txt", "r");
if (file == NULL) {
printf("Failed to open the file.\n");
return 1;
}
fseek(file, 0, SEEK_END);
long fileSize = ftell(file);
fseek(file, 0, SEEK_SET);
char* content = (char*)malloc(fileSize + 1);
if (content == NULL) {
printf("Failed to allocate memory.\n");
fclose(file);
return 1;
}
fread(content, 1, fileSize, file);
content[fileSize] = '\0';
fclose(file);
removeWhitespace(content);
printf("Result: %s\n", content);
free(content);
return 0;
}
用c语言写个程序,读取input.txt文件,把读取的内容,处理成先写一个十六进制的地址00000000,再冒号加空格,两个字节再加上一个空格,两个字节加上一个空格,当处理了十次两个字节后,接分号。这样第一行就完成了,把第一行写入一个新的txt文件名叫output.txt。
第二行和第一行类似,先写一个十六进制的地址,只是地址累加了16,再冒号加空格,两个字节再加上一个空格,两个字节加上一个空格,当处理了十次两个字节后,接分号。这样第二行就完成了,把第二行写入一个新的txt文件。第三行和上面类似,只是地址累加16,处理完了接着写入output.txt。直到input.txt文件内容处理完
输入文件如下
int main() {
FILE *inputFile, *outputFile;
char inputFileName[] = "input_rm_space.txt";
char outputFileName[] = "output.txt";
char byte[3];
int count = 0;
// 初始化累加值为0x00000000
unsigned int sum = 0x00000000;
// 定义一个字符串来存储结果
char result[12]; // 8位数字 + 1个'h' + 3个结束符'\0'
// 打开input.txt文件
inputFile = fopen(inputFileName, "r");
if (inputFile == NULL) {
printf("无法打开文件 %s\n", inputFileName);
return 1;
}
// 创建output.txt文件
outputFile = fopen(outputFileName, "w");
if (outputFile == NULL) {
printf("无法创建文件 %s\n", outputFileName);
return 1;
}
// 逐行读取input.txt文件内容并处理
while (!feof(inputFile)) {
// 读取一行数据
//fgets(address, sizeof(address), inputFile);
// 处理第一部分:地址 ,将结果转换为字符串,并存入到result中
sprintf(result, "%08xh", sum);
fprintf(outputFile, "%s: ", result);
// 处理第二部分:字节
while (count < 16) {
fgets(byte, sizeof(byte), inputFile);
fprintf(outputFile, "%s ", byte);
count++;
}
sum += 0x10;
// 处理完一行后换行
fprintf(outputFile, ";\n");
// 重置计数器
count = 0;
}
// 关闭文件
fclose(inputFile);
fclose(outputFile);
printf("处理完成!请查看 %s 文件。\n", outputFileName);
return 0;
}
处理完如下文章来源:https://www.toymoban.com/news/detail-802392.html
文章来源地址https://www.toymoban.com/news/detail-802392.html
到了这里,关于c语言中文件读入处理写入实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!