C语言 换行

我需要处理一些数据,
简单的说, 把一行两个数据的文件, 转行成 一行 8个数据的。 用C语言来处理。
原数据:(一行2个数据)

114.720 114.680
114.719 114.656
114.698 114.633
114.704 114.661
转换成一行8个数: (数字之间无关系, 只是表示形式问题。 数字之间是空格)

108.339 108.278 108.293 108.277 108.298 108.270 108.280 108.242
108.259 108.213 108.238 108.213 108.220 108.187 108.204 108.180
108.183 108.138 108.188 108.162 108.202 108.163 108.217 108.181

下面是我的程序 :
问题
1) 貌似数据没有成功的读取出来, 写出的数据全部是0.000 (这个应该是num的值)请问如何修改?
2) for句的部分,我也不是很清楚,i《3000只是随意定义的, 不知道如何定义成文件最末尾即停止。
3)麻烦给我修改成可以运行的代码, 最后有说明。我得为什么没有读取成功。

谢谢了。

#include <stdio.h>

#include<stdlib.h>

#include<string.h>

int main(void)

{

double num;

FILE *fp1, *fp2;

char *fname1 = "TWO.txt", *fname2 = "EIGHT.txt";

fp1 = fopen(fname1, "r"); //打开一行2个数字的元文件

fp2 = fopen(fname2, "w"); //将要写入的文件

for(int i=1;i<3000;i++){

fscanf(fp1,"%f ",&num);

fprintf(fp2,"%f ",num);

if(i % 8==0){

fprintf(fp2,"\n");

}

}

fclose(fp1);

fclose(fp2);
}

你这个完全没必要转换成double 我这里提供一个思路 你从源文件中读一行数据(建议使用fgets)然后把换行符转换成空格写到目标文件 再从源文件中读一行数据 然后直接写入目标文件 之后一直循环就行了
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-20
首先,你语法有问题,读取格式是%lf
然后,没有有效的结束判断,这样会写3000次,如果文件不够长,后面就全是一样的
char buf[100];
while(fgets(buf,sizeof(buf),fp1))
{
if(i++%4 != 0)
buf[strlen(buf)-1] = ' ';
fprintf(fp2, "%s", buf);
}
第2个回答  2014-11-20
30RMB

c语言如何换行
c语言换行的方法如下:1、使用字符串,输出在一个字符串结尾加上“\\r\\n”,如“hello\\r\\n”;2、使用字符数组拼接成字符串(在嵌入式c的使用中是常见的),在数组末尾增加0x0d和0x0a。

C语言-书写长字符串时的换行方法
换行方法 方法一:利用双引号对长字符串进行换行 为解决长字符串显示问题,可以将长字符串拆分为多个子字符串,使用双引号(")连接。C编译器在编译时会自动拼接这些子字符串,保持原始显示效果。示例代码如下:运行结果与未拆分的长字符串显示效果一致,有效解决了阅读困难。方法二:利用反斜杠对长字符串...

c语言换行符和回车符的区别?
只有一个区别,在于换行符【\\n】,即【%d】输出后不换行,而【%d\\n】会换行。概念解析:1、%d---输出一个整型数。2、\\n--- 回车换行。一、无换行符演示如下:1、【%d】代码:2、执行输出:二、换行符演示如下:1、【%d\\n】代码:2、执行输出:...

c语言一行写不下该怎么换行?
在C语言编程中,遇到一行无法容纳全部内容时,可以采取不同的处理方式来换行。首先,对于预处理部分,如果一个指令过长,需要分多行书写,应使用反斜杠`\\`进行续行,因为预处理指令严格遵循单个逻辑代码行的规则。例如:预处理指令过长时,使用反斜杠`\\`进行换行,如:define MY_CONSTANT \\ "This is a...

C语言中怎样换行?
在C语言中,实现换行主要有两种方法。首先,你可以利用字符串来实现,只需在字符串结尾添加特殊字符组合"\\r\\n",例如:"hello\\r\\n"。这种方法简单直观,适用于需要输出文本的场景。另一种方法是使用字符数组。在嵌入式系统编程中,常通过这种方式拼接字符串。具体操作是创建一个字符数组,如unsigned ...

c语言一行写不下该怎么换行?
C语言一行写不下可以跨行写。但是要分两种情况:1.预处理一行写不下:把一个预处理指示写成多行要用“\\”续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成。2. 正常程序一行写不下:把C代码写成多行则不必使用续行符,因为换行在C代码中只不过是一种空白字符,在做语法解析时所有...

c语言中的换行符怎样显示
键盘输入反斜杠n即可。注意:反斜杠n只能出现在输出语句中,若在输入语句中用了反斜杠n的话,容易产生错误。换行符:是一种计算机语言表达方式,它的作用是跳到下一个新行。在不同的语言中,代码也有所不同。在C语言中的换行符是“反斜杠n”,就是输入完一行内容后,光标转到下一行的起始位置 。

c语言中怎样换行?
答案明确:在C语言中,可以使用转义字符“\\n”来实现换行。详细解释:C语言中,为了在输出内容中实现换行的效果,通常会使用转义字符“\\n”。这个字符告诉编译器,当前的位置需要开始一个新的行。当你在printf函数或者其他输出函数中使用“\\n”时,它会在输出中插入一个换行符,从而开始新的一行。例如...

C语言中,怎么才能换行?
在前面的绿竖杠中加$.这就代表换行了。例如:c='This a very very very very very very very very very very very & &very very very very very very very very very very very very very & &very long sentence.'前一行行尾和下一行行首加&,这是自由格式,文件后缀为*.f90。

c语言中换行用什么符号?
在C语言中,换行符\\n通常被用来表示换行,即在输出中将内容移到下一行。为什么要把\\n放在字符串的末尾呢?这是因为在C语言中,字符串是以空字符\\0结尾的字符数组。这个空字符表示字符串的结束。如果你在字符串中插入\\n(换行符)并且不把它放在字符串的末尾,那么在输出这个字符串时,后面的内容将会...

相似回答
大家正在搜