【发布时间】:2016-04-21 18:14:28
【问题描述】:
所以我有一个包含数据的大文本文件,我想重新排列它。数据每行都有整数和浮点数的组合,但我只对获取第一个整数(1 或 0)感兴趣,并将其放在行尾。
例如,在我的数据文件中,我有以下行1 0.41 1 44
我想成为0.41 1 44 1
这是我目前所拥有的,无法让它正常工作。谢谢。
void main() {
FILE *fp;
FILE *out;
char str[15];
char temp;
fp = fopen("dust.txt", "r+");
out = fopen("dust.dat", "w");
while(fgets(str, sizeof(str), fp) != NULL) {
temp = str[0];
str[strlen(str)] = ' ';
str[strlen(str)+1] = temp;
str[strlen(str)+2] = '\r';
str[strlen(str)+3] = '\n';
fwrite(str, 1, strlen(str), out);
}
fclose(fp);
fclose(out);
}
【问题讨论】:
-
您可能还想检查 fgets 返回的 str 的大小,因为您尝试访问 length + 3
-
不要忽视
fgets保留的newline。
标签: c fopen fwrite file-management file-manipulation