请问一下 怎么用c语言实现读取一个txt文件里的数据 要按行读出来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一下 怎么用c语言实现读取一个txt文件里的数据 要按行读出来相关的知识,希望对你有一定的参考价值。
请问一下 怎么用c语言实现读取一个txt文件里的数据 要按行读出来 比如我的txt的文档里的数据是
0.160
0.172
0.160
0.233
0.209
。。。。我需要每次取出一个数据来计算 这个怎么实现啊?
#include<fstream>
#include<iostream>
using namespace std;
void main()
ifstream in("####");//传入文件名
string str;//用于放一行数据
getline(in,str);//重点,很简单吧
cout<<str<<endl;
in.close();
如果只是读数字的话,甚至可以这样来做
double value;
in>>value;//这样程序会忽略空白符读入一个double型的数据
其实C和C++本就是一脉相承,所以就用C++回答了 参考技术A 简单的办法:
#include <stdio.h>
...//这里的你自己的程序,省去
FILE *fp = fopen("你的文件的文件名", "r");
int n;
while (!feof(fp))
fscanf(fp, "%d", &n);
..//读出的数在n里,一次一个数
fclose(fp); //读完就退出循环本回答被提问者采纳 参考技术B
打开文件 fopen("需要打开的路径")
然后使用fgets函数读取行
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
int main()
char buf[MAX_LINE]; /*缓冲区*/
FILE *fp; /*文件指针*/
int len; /*行字符个数*/
if((fp = fopen("test.txt","r")) == NULL)
perror("fail to read");
exit (1) ;
while(fgets(buf,MAX_LINE,fp) != NULL)
len = strlen(buf);
buf[len-1] = '\\0'; /*去掉换行符*/
printf("%s %d \\n",buf,len - 1);
return 0;
用循环把数字读到数组a里面顺便显示出来 */
#include <stdio.h>
int main()
double a[100];
int i=0;
FILE* fp;
if((fp=fopen("d:\\ttt.txt","r"))==0)
printf("无文件!!\n");
return -1;
while(!feof(fp))
fscanf(fp,"%lf",&a[i]);
printf("%lf\n",a[i]);
i++;
fclose(fp);
return 0;
参考技术D 利用输入输出流打开文件,然后按行读取放到string类型,然后再重定向到 double类型中,程序如下已经过调试:
#include <iostream>
#include<fstream>
#include<string>
#include<sstream>
using namespace std;
void main()
fstream in;
in.open("D:\\1.txt",ios::in);
string temp;double data;
while(getline(in,temp))
istringstream stream(temp);
stream>>data;
cout<<data<<endl;
还有更简单的方式,如果一行只有一个单词的话
while(in>>data)
cout<<data<<endl;
如何用JAVA NIO读取文件的指定内容?
我有个txt文件,开头是:
width=16;
depth=256;
我想用java读取这两个数据,然后存到变量里面。我查了很多java读文件的代码,似乎能完成这个功能的都是bufferreader之类的函数,但我想用NIO来实现,就是用文件通道,然后读入缓存的方法,请问可不可以用NIO来读我指定的内容,例如width=后面的那个数字呢?
NIO我不管了,那正则怎么写呢?比如我要提取"WIDTH="和分号“;”之间的数字。
Properties类我不懂,你能不能详细说一下呢?
补充------
package com.huawei.baidu;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest
public static void main(String[] args)
String regex="(width=)(\\d+);";
String testString="width=123;";
Pattern reg = Pattern.compile(regex);
Matcher regexMatcher = reg.matcher(testString);
if(regexMatcher.find())
System.out.println(regexMatcher.group(2));
参考技术A 这种用=号分隔的属性名和值,最好是用Properties类来处理,很方便的。
以上是关于请问一下 怎么用c语言实现读取一个txt文件里的数据 要按行读出来的主要内容,如果未能解决你的问题,请参考以下文章