4个回答
展开全部
1.用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。
2.例程:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],b[100],c[100];
int i=3,j=4,k=0; //第三行,第四列
FILE *fp = fopen("data.txt","r");
while(fgets(c,100,fp)){ //读入每行数据
i--;
if(i==0) strcpy(a,c); //读到第三行数据
b[k++]=c[j-1]; //把每行的那列字符拷到b中
}
b[k]=0;
printf("第%d行数据:%s\n",i,a);
printf("第%d列数据:%s\n",j,b);
fclose(fp);
}
展开全部
//程序可以运行!!!
#include<iostream>
#include<fstream>
using namespace std;
#define N 100
void next_line(ifstream& ins)
{
char symbol;
do{
ins.get(symbol);
}while(symbol!='\n');
}
int main()
{
int value[N][2],i=0,length;
char symbol;
ifstream ins;
ins.open("a.txt");
while(!ins.eof())
{
next_line(ins);
ins>>value[i][0];
ins.get(symbol);
ins>>value[i][1];
i++;
}
length=i;
for(i=0;i<length;i++)
printf("\n%10d%10d",value[i][0],value[i][1]);
ins.close();
return 0;
}
#include<iostream>
#include<fstream>
using namespace std;
#define N 100
void next_line(ifstream& ins)
{
char symbol;
do{
ins.get(symbol);
}while(symbol!='\n');
}
int main()
{
int value[N][2],i=0,length;
char symbol;
ifstream ins;
ins.open("a.txt");
while(!ins.eof())
{
next_line(ins);
ins>>value[i][0];
ins.get(symbol);
ins>>value[i][1];
i++;
}
length=i;
for(i=0;i<length;i++)
printf("\n%10d%10d",value[i][0],value[i][1]);
ins.close();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用fgets函数
从流中读一行或指定个字符,原型是char *fgets(char *s, int n, FILE *stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。
形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream是文件指针
例:如果一个文件的当前位置的文本如下 Love ,I Have
但是,如果用fgets(str1,4,file1);
则执行后str1="Lov",读取了4-1=3个字符,
而如果用fgets(str1,23,file1); 则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0')。
#include <string.h>
#include <stdio.h>
int main(void)
{ FILE *stream;
char string[] = "This is a test";
char msg[20];
/* open a file for update */
stream = fopen("DUMMY.FIL", "w+");
/* write a string into the file */
fwrite(string, strlen(string), 1, stream);
/* seek to the start of the file */
fseek(stream, 0, SEEK_SET);
/* read a string from the file */
fgets(msg, strlen(string)+1, stream);
/* display the string */
printf("%s", msg);
fclose(stream);
return 0;
}
fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。
从流中读一行或指定个字符,原型是char *fgets(char *s, int n, FILE *stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。
形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream是文件指针
例:如果一个文件的当前位置的文本如下 Love ,I Have
但是,如果用fgets(str1,4,file1);
则执行后str1="Lov",读取了4-1=3个字符,
而如果用fgets(str1,23,file1); 则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0')。
#include <string.h>
#include <stdio.h>
int main(void)
{ FILE *stream;
char string[] = "This is a test";
char msg[20];
/* open a file for update */
stream = fopen("DUMMY.FIL", "w+");
/* write a string into the file */
fwrite(string, strlen(string), 1, stream);
/* seek to the start of the file */
fseek(stream, 0, SEEK_SET);
/* read a string from the file */
fgets(msg, strlen(string)+1, stream);
/* display the string */
printf("%s", msg);
fclose(stream);
return 0;
}
fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。
参考资料: http://baike.baidu.com/view/656654.htm
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用参考资料中的API,里面有例子
参考资料: http://baike.baidu.com/view/656654.htm
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询