关于C语言按行读取文件,读取其中数字,挨个转换成doube类型,存入数组

int main()
{
FILE *fp;
char buffer[50];
char filename[50];
int bufferLen;
int i;
int j = 0;
char c;
double c_number[50];

printf("Input file name: ");
scanf("%s", filename);

if((fp = fopen(filename, "rb")) == NULL)
{
    return -1;
}
while(fgets(buffer, 50, fp))
{
    for(i = 0; i < 50; i++)
    {
    c = buffer[i];
    if(c != ' ' && c != '\n' && c != '\r') //这里过滤,读取数字,文件有符号,空格什么的
    {
        c_number[j] = (double)atof(c); //这里想挨个转换double没有成功

        //sscanf(c, "%lf", c_number[j]);
        j++;
    }
    }
}
fclose(fp);
0

6个回答

调试下,目测atof(c),而c是单个字符,这是不行的。最好用split函数切割成字符串,字符串才能解析为浮点数

0

为什么不直接用fscanf

0

恩 c为char 占 1个字节 double占8个字节

0

把c定义成 char c[2] = {0};

这里 c[0] = buffer[i];

然后就可以 c_number[j] = (double)atof(c);

0
0
  1. while(fgets(buffer, 50, fp)) 一直读取? 好像应该是while(fgets(buf,50,fp) != NULL)
  2. fgets得到的是一个字符指针,不一定是一个字符,是一行字符,根据你的要求,最多读取49个,因为最后一个'\0' 所以得到的buffer是一行数据,也就是buffer可能是一个double数据,而不是c
  3. 读取的字符数组buffer含49个字符加一个空字符,你用for循环赋值,那没有通过fgets得到内容(例如读取53.25),那么后边内容是什么?随机? 你把后边内容同样给c,好像没有意义吧,应该加判断 if (buffer[i] == '\0').
  4. 看你数组都用的50,你是想要读取50行,也就是读取50个double? 那应该是50次(fgets(buffer, count, fp),其中count是你要读取的最大double字符数加1或更大。
-1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++按行读取文件内容,储存在数组中
本文可以用于opengl读取obj格式文件,因为最近在做三维模型的压缩和简化,所以对C++按行读取文件进行学习//fileAddress是文件名称,特别是对于vs编辑器,文件如果不带路径需要放在 项目目录下的.cpp文件旁边,否则找不到文件n//用文件输入流读入fileAddress这个文件n//c.str()返回fileAddress第一个字符的地址nifstream inf(fileAddre
PHP以行的方式读取文件内容放入数组中
/**n * 读取文件内容,文件为txt格式,文件内容每行的格式为(104|业务已订购,可继续使用鉴权成功,该商品已经购买)n * ,对应每行内容不同选项用|隔开n * @param $file string 文件对应路径n * @param $nums int 文件内容每行对应栏数个数n * @return ar
逐行读取txt文件并存入到数组中
rn rn 逐行读取txt文件并存入到数组中rn rn rn rn nget_file_contents_on_line.phpnn $file = fopen(&quot;log.txt&quot;, &quot;r&quot;);n $user=array();n $i=0;n//输出文本中所有的行,直到文件结束为止。n while(! feof($file))n ...
shell 按行读取并保存成数组
从ip.txt里读取IP.然后把IP地址赋值到一个数组里.IP文件如下:Address:  220.181.26.163Address:  220.181.26.174Address:  220.181.26.175Address:  220.181.26.176Address:  220.181.19.228Address:  220.181.19.229Address:  220.181.26...
Node.js逐行读取文件内容至Array数组中
项目整体结构如下:rnrn详细代码如下:rn//ObserverMode.jsrnconst queuedObservers = new Set();rnrnconst observe = fn =&amp;amp;amp;gt; queuedObservers.add(fn);rnconst observable = obj =&amp;amp;amp;gt; new Proxy(obj, {set});rnrnfunction set(target, key...
C语言之按行读取文件
原文本文件outlook,temperature,humidity,windy,playnsunny,hot,high,FALSE,nonsunny,hot,high,TRUE,nonovercast,hot,high,FALSE,yesnrainy,mild,high,FALSE,yesnrainy,cool,normal,FALSE,yesnrainy,cool,normal,TRUE,nono
C语言如何按行读取文本文件
n n n C语言如何按行读取文本文件n这是一个C语言按行读取文本文件的例子。n输入一个文本文件a.txt,按行读取文本内容:nn丢弃以#开头的行;因为通常假设这是注释行。n丢弃每行开头的空格字符。(保留行后部的空格)nn#include &amp;lt;stdio.h&amp;gt;n#include &amp;lt;string.h&amp;gt;nn/**n * Handle a single...
java按行读取并存到数组(转换成任意类型)(算法题目常用)
n做用java做算法时,需要进行.txt文件的读写问题。 n思考:现在知道如何用读每行的数据的,怎么把他们分开?nnnnn//从文件中读取nFile inFile=new File(&quot;E:\\input.txt&quot;);nBufferedReader br=new BufferedReader(new FileReader(inFile));nString firstLine=br.readLine...
fscanf用法:按行读取,按列存储
matlab中的fscanf的用法如下:nA=fscanf(fid,format)n[A, count]=fscanf(fid,format,size)n[A, count]=fscanf(fid,format,size)n个人感觉用的最多的是 这样的形式:ndata = fscanf(fid,format,size);n其中data为读取内容的数组,大小由size决定。size是一个[m n]的...
c++分行读取并利用数字类型文件数据
对于这个小程序我认为程序的难点在于将文件中的信息读取出来,并且在读取后进行类型转换将字符串中的数据,转换成可以进行计算排序的数字类型数据。
文件读取基本操作——txt数据存入数组,数组内容保存为txt,获取txt文档行数
1.c++读取txt文档存入数组,数组保存为txt文档nn想读取一个txt文档中的数据,保存到数组里面。对数组中的数据进行改变,再输出到txt文档中。nn这是原始的txt文档nnnn以下是程序:nnn#include&amp;lt;iostream&amp;gt;n#include&amp;lt;fstream&amp;gt;nnusing namespace std;nnint main()n{n float data[4][...
python 读取TXT内内容,按行存入list
nndef ReadTxtName(rootdir):n lines = []n with open(rootdir, 'r') as file_to_read:n while True:n line = file_to_read.readline()n if not line:n breakn ...
C文本文件处理 fgets读取每行数据并处理
需要解决的问题:有一个文本,每行由16个 0到f的字符组成(64bit的数字写成十六进制表示),需要统计整个文本中0到f 十六个字符的个数。nnmatlab做循环运算比较慢,特别在循环次数很多的时候更慢。这时候用C更有优势。按行读取文本,我采用的是fgets()函数。nnn#include &amp;lt;stdint.h&amp;gt;n#include &amp;lt;stdio.h&amp;gt;n#include &amp;lt...
c语言-逐行读取txt文件的内容
20180207-c语言 逐行读取txt文件的内容/*逐行读取txt文件的内容*/// VC++6.0#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;string.h&amp;gt; int main(){       char szTest[1000] = {0}; int len = 0; FILE *fp = fopen(&quot;1.txt&quot;, &quot;r&quot;);     if(NUL...
C语言读取文件数据到结构体数组
#include n#include n#include nstruct infostun{n char no[20]; //学号 n char name[20]; n char sex[4];n int age;n char major[20]; //专业班级 n};nint main()n{n int i=0,j;n struct infostu student[500];
C语言fgets函数按行读取文件
fgets, fgetwsrnGet a string from a stream.C语言没有像C++、Python语言的getline()函数,无法读取文件的某一行。然而,C语言有fgets()函数,该函数返回string类型,关键是该函数遇到换行符或EOF,则读取结束。利用这一特点,我们可以设置n为适当的缓冲区大小,即可以实现按行读取。rnrnchar *fgets( char *string
C 按行读取txt文件
原文地址:https://blog.csdn.net/u011857683/article/details/81263619nnc中没有getline()这个函数,该函数只存在于c++中。nn有些人说用gets,但是这个函数是不安全的,gets不知道字符串的大小,容易造成溢出的问题。nn解决方案,使用fgets函数nn其关键在于在读出n-1个字符之前,如遇到了换行符或EOF,则插入字符串结束标志'...
c语言 创建动态二维数组 读取txt文件到数组
int**P;rn P = (int**)malloc(sizeof(int)*M);rn for (int i = 0; i rn  P[i] = (int*)malloc(sizeof(int)*Z);rn }rnrnrnrnrnFILE *fp = fopen("F:\\datain.txt", "r");rn for (int i = 0; i rn  for (int j = 0; j
C语言从txt文件的数据保存到二维数组
代码nn#include nint main(int argc,char** argv)n{n float a[3][3];n int i,j;n FILE* fp=fopen("a.txt","r"); //打开文件n if(fp==NULL)n {n printf("无文件");
C语言从txt文本中读取多行用逗号分隔的数据
例如数据为: n0.5712,0.45356,0.74399 n0.58775,0.4721,0.77793 n0.51964,0.42228,0.69693 n将每一列的数据保存在一个double型数组中。 n解决方案: n1.利用fscanf()函数:#include <stdio.h>n#include<stdlib.h>int main()n{n FILE *fp = fopen("C
C语言读取文件大量数据到数组
针对.txt文档的大量有规律数据,譬如100行8列的数据将其读取到二维数组(矩阵)中,留作之后的数据处理。rn改程序通过宏定义的方法来确定将要读取程序的行数和列数,将数据读取到二维数组data[100][8]中。rn同时加入一个测试函数read(),功能是可以获取txt文档大量数据的行数,本项目中待定使用。rn程序如下:rn#includern#includern/*rn为了以后特定行数的读取,采
qt 读取txt文件内容并保存到数组中
首先打开txt文件rn通过QTextStream读取文件内容rn由于我的数据量比较小,rn所以全部读取后用split分隔,rn再用append一个个存到数组中。rn      QFile rnfile(filename);rn QVectorfloat> array;rn if(file.open(QIODevice::ReadOnly))rn {rn QTextStrea
C++读取多行数字然后读取该行各个数字
问题:rn比如让循环读取一行数字“1 2 3;4 5 6;7 8 9;”rn并且取出各个数字1,2,3,4,5,6,7,8,9rnrnrn说明:输入只有一行,以‘;’为分隔符,其实是三行数字,但是注意最后结尾有一个‘;’(如果没有这个分号,代码将发生很大变化)。每行数字以空格分割。rnrnrn解决:使用C++里面的getline和sstream。代码如下。rnrn#includern#includ
C实现从文件读取固定长度的值赋给变量,以及将变量值写入文件
C语言实现从文件读取固定长度的值赋给变量,以及将变量值写入文件
node.js使用readline按行读取文件内容到Array中
具体代码实现如下:rnvar fs = require(&amp;amp;quot;fs&amp;amp;quot;);rnvar readLine = require(&amp;amp;quot;readline&amp;amp;quot;);rnrn/**rn * 按行读取文件内容rn *rn * @param fReadName 文件名路径rn * @param cb 回调函数rn *rn * @return 字符串数组rn */rnfunction readFileToArr(fReadName,
linux按行读取一个文件,然后输出
读取获取/process/devices文件的信息,然后按照一行一行的方式输出信息。rnLinux she'll的实现实例:rn#!/bin/bashrnrnrnwhile read linerndornecho $linernecho ${#line}rndone rnrnrnecho $line 是输出读取的当前行的数据rnecho ${#line}输出当前行字符串的长度
C 按行读取文件到缓存,再打印
 #include &amp;lt;stdio.h&amp;gt;  2 #include &amp;lt;stdlib.h&amp;gt;  3 #include &amp;lt;string.h&amp;gt;  4   5 #define FILE_PATH &quot;/root/test_c/test.txt&quot;  6 #define STRING_LENGTH (20)  7 #define BUFF_LENGTH (1024 * 1024...
C++实现逐行读取TXT文件的内容,并将指定的内容输出来
C++实现读取TXT文件里面的内容,一行一行的读取,并自动换行,自动将指定的内容读取出来或是输出
C++如何按行读取txt文件并存储到字符串中?
今天老师留了一道C++作业。nnn//91. C++输入和输出:编写一个程序,将下面的信息表写入文件stock.txt中nn//Shen  fa  zhan   000001nn//Shang  hai  qi  che  600104nn//Guang  ju  neng  yuan  000096nnn对文件的理解运用一直不怎么样,写在这里是希望自己能记住。n首先我在
php 读取文本文件到行数组
$file_path = "f:\identification.txt";n if(file_exists($file_path)){n $str = file_get_contents($file_path);//将整个文件内容读入到一个字符串中n $strs = explode("\r\n", $str);n }
shell脚本之提取txt文件到数组
想把txt文件中的数据存带数组里,以便接下来的脚本进行使用。na=0nfor line in `cat address.txt`ndon account=$linen accounts[$c]=$accountn ((c++))ndonenn接下来,便可以使用数组accounts。使用形式${accounts[i]}。nn...
使用c语言读取写入文件(关于大数据量二维数组的读写)
如果处理的是大数据量的需要定义成全局变量从文本里面读取一个二维数组(1024*1024)#include<stdio.h>n#define m 1024n#define n 1024nfloat a[m][n]={0}; //定义一个二维数组nint main()n{n int i=0,j=0;n FILE *fp; //文件指针n// fp = fopen("lgx.txt",
C++如何读取txt文件的数据并且以二位数组存到内存中
本次实验主要的目的就是读取txt的数据,在上次博文中说到如何读取txt的数据,那篇博文读了一行数据并存在了一个一维向量中,本次实现读取二维向量。直接上代码:nn解释一下:代码中的40代表有40行,8064代表有8064列。nnn#include &lt;iostream&gt;n#include &lt;vector&gt;n#include &lt;algorithm&gt;n#include ...
golang之路--按行读取
 rn//========相比java的读文件,go的读文件方式好清晰啊=====rnrnf, err := os.Open(&quot;conf/proxy.ini&quot;)rn defer f.Close()rn if nil == err {rn buff := bufio.NewReader(f)rn for {rn line, err := buff.ReadString('\n')rn i...
go入门-按行读取文件返回列表
使用自带的bufio包中的NewReader方法,代码如下nnnnfunc getContent (filename string) []string{n fileIn, fileInErr := os.Open(filename)n if fileInErr != nil{n fmt.Println(&amp;quot;error!&amp;quot;)n }n defer fileIn.Cl...
C++ fopen按行读取文件及所读取的数据问题
1、已有文本文件:nstring dataList;使用fopen读取:nFILE *fpListFile = fopen(dataList.c_str(), "r");nif (!fpListFile){n cout << "0.can't open " << dataList << endl;n return -1;n}nnn2、按行读取数据:n方法一:nchar loadIm
PHP读取txt文件的内容并赋值给数组…
方法一:nnPHP Codennnnview sourcennnprint?nnnnnnnnn01nnn$file = '2010-12-15.txt';nnnnnnnnnnn02nnn$content = file_get_contents($file);nnnnnnnnnnn03nnn//echo $content;nnnnnnnnnnn04nn nnnnnnnnnnn05nnn$array 
C语言读取文件,包含字符数字,按字符求数字平均数
C语言读取文件,包含字符数字,按字符求数字平均数。C语言基础程序备忘记录。
C语言第六次作业练习
以下程序教材基于 谭浩强C程序设计(第四版)第1题 求整型一维数组中所有元素的和(假定数组长度为10)。/*求整型一维数组所有元素的和*/# include<stdio.h>int main(void)n{n int a[10],sum=0,i; printf("请输入10个整数\n");n for(i=0;i<10;i++)n {n scanf("%d",&
C++ 按行读取文件并按空格将数据存储为vector
应用:n1、现有一个txt文件,路径及名称存储为loadFeatList;n2、文件存储了多行特征数据;n3、每行存储一幅图片的特征,共2048个float数据,按空格分开;n4、欲将其按行读取,存为一个vectoer数据,其中每个vector存储每行按空格分开的数据;n代码实现如下:n std::ifstream infile_feat(loadFeatList);n std::st
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 关于大数据培训 关于云计算