发布网友
共5个回答
好二三四
首先在D盘里创建一个data的txt文件,然后将data文件放进c语言的数据中即可读取相应数据。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。
C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性。
热心网友
先用getline或fgets读取数据到一个字符串中,这个串定义的长一点,保证够用就行。
举例:
char str[1024]。
fgets( str , sizeof(str), fp ),//fp打开的文件指针。
然后调用for循环去读取串的的数据,假设你的分隔符是空格,遍历str,遇到空格就得到一个数据,然后继续遍历,直到str尾。
再去fgets数据,再遍历,即可得到所有的数据。
C语言是一门通用计算机编程语言,广泛应用于底层开发。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
热心网友
先用getline或fgets读取数据到一个字符串中,这个串定义的长一点,保证够用就行,如:
char str[1024];
fgets( str , sizeof(str), fp ); //fp为你打开的文件指针
然后调用for循环去读取串的的数据,假设你的分隔符是空格,遍历str,遇到空格就得到一个数据,然后继续遍历,直到str尾。
然后再去fgets数据,再遍历,即可得到所有的数据。
热心网友
如果允许不按行读取,用scanf读整数即可,scanf会自动忽略换行和其它空白符。
for(;;)
{
if(fscanf(fp, "%d", &n) != 1) break;
//处理读入的整数
}
如果要按行读取,需要两层循环, 外层用fgets, 内层用sscanf.追问能具体说一下按行读取的话内层怎么循环吗?因为现在不确定每行有多少个数据。。。多谢
追答可以这样(下面用sscanf举例, 你也可以用strtok和atoi实现):
#define BUF_SIZE 100
char buf[BUF_SIZE];
char 星号 p;
int n;
...
while(fgets(s, sizeof(buf), fp)){
p = buf;
while(sscanf(p, "%d", &n) == 1){
//处理整数
//假设分隔符是空格,如果是tab换成\t。
//跳过前置空格:
while(p[0] == ' ') p++;
//跳过处理的整数,指针停在下一个空格(下面一个整数至少有一个前置空格):
while((p[0] != ' ') && (p[0] != '\0')) p++;
//如果停在字符串尾(可能跳过’\n'),跳出内循环
if(p[0] == '\0') break;
}
}
热心网友
使用fopen,fscanf函数即可读取文件数据。
1、fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
2、例程:
热心网友
把数据发给我!13905261@qq.com我大概能搞定