C语言中如何将文件中的某行的字符串读取出来? C程序,如何从指定文件中读取一个字符串?

C\u8bed\u8a00\u4e2d\u4ece.txt\u6587\u4ef6\u4e2d\u6309\u884c\u8bfb\u53d6\u5b57\u7b26\u4e32\u81f3\u6570\u7ec4\u4e2d\uff0c\u600e\u4e48\u5199\uff1f

\u53ef\u4ee5\u8bbe\u5b9a\u6587\u4ef6\u540d\u4e3ain.txt, \u5b58\u6709\u4e00\u7cfb\u5217\u6574\u578b\u6570\u636e\uff0c\u4ee5\u7a7a\u683c\u6216\u6362\u884c\u5206\u9694\u5199\u3002
\u4ee3\u7801\u5982\u4e0b\uff1a
#include int main()
{
int v[100];//\u5f00\u4e00\u4e2a\u8db3\u591f\u5927\u7684\u6570\u7ec4\u3002
int i = 0, j;
FILE *fp;//\u6587\u4ef6\u6307\u9488 fp = fopen("in.txt", "r");//\u4ee5\u6587\u672c\u65b9\u5f0f\u6253\u5f00\u6587\u4ef6\u3002
if(fp == NULL) //\u6253\u5f00\u6587\u4ef6\u51fa\u9519\u3002
return -1;
while(fscanf(fp, "%d", &v[i]) != EOF) //\u8bfb\u53d6\u6570\u636e\u5230\u6570\u7ec4\uff0c\u76f4\u5230\u6587\u4ef6\u7ed3\u5c3e(\u8fd4\u56deEOF)
i++;
fclose(fp);//\u5173\u95ed\u6587\u4ef6
for(j = 0; j < i; j ++)//\u5faa\u73af\u8f93\u51fa\u6570\u7ec4\u5143\u7d20\u3002
{
printf("%d ", v[j]);
}
return 0;
}

\u6269\u5c55\u8d44\u6599
1\u3001\u5b57\u7b26\u6570\u7ec4\u7684\u521d\u59cb\u5316\uff0c\u6700\u5bb9\u6613\u7406\u89e3\u7684\u65b9\u5f0f\u5c31\u662f\u9010\u4e2a\u5b57\u7b26\u8d4b\u7ed9\u6570\u7ec4\u4e2d\u5404\u5143\u7d20\u3002
2\u3001\u5982\u679c\u82b1\u62ec\u53f7\u4e2d\u63d0\u4f9b\u7684\u5b57\u7b26\u4e2a\u6570\u5927\u4e8e\u6570\u7ec4\u957f\u5ea6\uff0c\u5219\u6309\u8bed\u6cd5\u9519\u8bef\u5904\u7406\uff1b\u82e5\u5c0f\u4e8e\u6570\u7ec4\u957f\u5ea6\uff0c\u5219\u53ea\u5c06\u8fd9\u4e9b\u5b57\u7b26\u6570\u7ec4\u4e2d\u524d\u9762\u90a3\u4e9b\u5143\u7d20\uff0c\u5176\u4f59\u7684\u5143\u7d20\u81ea\u52a8\u5b9a\u4e3a\u7a7a\u5b57\u7b26\uff08\u5373 '\0' )\u3002

#include #include int main(){FILE *fp;char cl[100];if((fp=fopen("1.txt","r"))==NULL)exit(1);while(fscanf(fp,"%s",cl)==1)printf("%s \n",cl);if(fclose(fp)!=0)exit(1);return 0;}
C\u8bed\u8a00\u662f\u76ee\u524d\u4e16\u754c\u4e0a\u6d41\u884c\u3001\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684\u9762\u5411\u8fc7\u7a0b\u7684\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002 C\u8bed\u8a00\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u548c\u7cfb\u7edf\u4f7f\u7528\u7a0b\u5e8f\u4ee5\u53ca\u9700\u8981\u5bf9\u786c\u4ef6\u8fdb\u884c\u64cd\u4f5c\u7684\u573a\u5408\uff0c\u7528C\u8bed\u8a00\u660e\u663e\u4f18\u4e8e\u5176\u5b83\u9ad8\u7ea7\u8bed\u8a00\uff0c\u8bb8\u591a\u5927\u578b\u5e94\u7528\u8f6f\u4ef6\u90fd\u662f\u7528C\u8bed\u8a00\u7f16\u5199\u7684\u3002

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MaxCols 2000     //设定每行字符数不超过MaxCols,根据变化调整 
//获取已经打开文件fp的第line行内容到stri,如果成功返回得到的字节数,
//如果没有那么多行,返回-2 
int getlinetxt(FILE *fp,int line,char *stri){
int i;
fseek(fp,0,0); //指针到文件最开始
for(i=0;i<line;i++) 
if(fgets(stri,MaxCols,fp)==NULL) //没有这么多行错误
return -2;
  return strlen(stri);
}
//获取filename文件的第line行内容到stri,如果成功返回得到的字节数,
//如果打开文件失败,返回-1,如果没有那么多行,返回-2 
int getfiletxt(char *filename,int line,char *stri){
FILE *fp;
if ((fp=fopen(filename,"r"))==NULL){
//打开文件错误,返回-1 
return -1;
}
return getlinetxt(fp,line,stri);
fclose(fp);
}
int main(){
char s[MaxCols];
int row=10, flag;
//以下例子是获取d:emp.txt的第10行文本内容 
flag=getfiletxt("d:\emp.txt",row,s);
if (flag==-1)
printf("打开文件错误
");
else if(flag==-2)
printf("文件中的行数不足%d行
",row);
else
printf("获取到的文本是: 
%s包含最后的换行符,长度=%d
",s,flag);
}


所谓的某行你没有给出确切的定义,通常读文件采用的方法是将文件内容的全部,或者部分保存在缓存中,如果你是想读取第几行,那么就可以使用字符指针,寻找缓存中的'\n',并进行计数,找到想要的行。
如果想读取的是某个关键字所在的行,同样是可以使用字符指针,使用strncmp方法寻找关键字所在的位置,或者直接使用strstr方法查找。
需求不明确的时候不容易确定最佳的查找方式。

#include<stdio.h>
#include<stdlib.h>
void main ()
{
char s1[80],s2[80];
int a1,a2;
FILE *fp;
if((fp=fopen("t.txt","r"))==NULL)
{
printf("open wrong");
exit(1);
}
fscanf(fp,"%s%s%d%d",s2,s1,&a1,&a2);
fprintf(stdout,"%s,%s,%d,%d\n",s1,s2,a1,a2);
}

把ABC DEF 10 20存在t.txt中
读取并保存在 s1,s2,a1,a2
输出

scanf("%s",s); //这是读入一个字符串,遇到空格回车就停止读入
gets(s); //这个是读入一整行,只有遇到回车才停止读入

用fscanf()就可以啦,

char a[80],b[80];
int c,d;

FILE *fp=fopen("data.txt","r");

fscanf(fp,"%s %s %d %d",a,b,&c,&d);

  • C璇█涓浣曞皢鏂囦欢涓殑鏌愯鐨瀛楃涓茶鍙栧嚭鏉?
    绛旓細鏍规嵁鍙樺寲璋冩暣 //鑾峰彇宸茬粡鎵撳紑鏂囦欢fp鐨勭line琛屽唴瀹瑰埌stri锛屽鏋滄垚鍔熻繑鍥炲緱鍒扮殑瀛楄妭鏁帮紝//濡傛灉娌℃湁閭d箞澶氳锛岃繑鍥-2 int getlinetxt(FILE *fp,int line,char *stri){int i;fseek(fp,0,
  • C璇█鏂囦欢鎿嶄綔闂,鎬庢牱鏇挎崲鏂囦欢涓涓琛屾暟鎹
    绛旓細棣栧厛,鏁版嵁鍐欏叆鍒鏂囦欢涓殑鏄拷鍔犵殑褰㈠紡銆傚叿浣撶殑鍐欏叆浠g爜濡備笅鎵绀: 涓昏鍐欏叆鏃惰鎸囧畾姣忎釜鏁版嵁鐨勫搴,鑻ヤ笉鎸囧畾,褰撲慨鏀鏌愯鐨鏁版嵁,淇敼鍚庣殑闀垮害澶т簬淇敼鍓嶅緱闀垮害,灏嗗奖鍝嶆枃浠朵腑鐨勪笅涓琛屻傚埗瀹氬搴︿箣鍚,鍙淇敼鍚庣殑闀垮害涓嶅ぇ浜庡埗瀹氱殑瀹藉害,閮戒笉褰卞搷涓嬮潰鐨勫唴瀹广(杩欐槸娉ㄦ剰鐐) FILE *fp=fopen("clientinfo.txt","ar+")...
  • C璇█鎬庝箞鍋氬埌浠鏂囦欢涓璇诲彇涓琛屾暟鎹,鐒跺悗鏀瑰彉杩欎竴琛屽唴瀹
    绛旓細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.tx...
  • c璇█瀹炵幇鏂囦欢鍐呭鏌愯鍒犻櫎
    绛旓細绠鍗曠殑璇村氨鏄妸鍚庨潰鐨勬瘡涓琛屼竴琛屼竴琛岀殑璇诲嚭锛屽啀涓琛屼竴琛岀殑鍐欏埌鍓嶉潰涓琛屻
  • c璇█ 璇诲啓鏂囦欢鏃鎬庝箞鏍涓娆¤鍙栧嚑琛,鐒跺悗鍐嶅嚑琛屽嚑琛岀殑寰涓嬭鍙
    绛旓細鐢ㄥ弻閲嶅惊鐜鍙ワ紝灏卞彲浠ュ啀鍑犺鍑犺鍦拌銆備緥濡傦細include <stdio.h> include <stdlib.h> FILE *fin;main(){ char s[20][200];int i,j;fin=fopen("abc.txt","r"); // 鎵撳紑鏂囦欢 for (i=0;i<4;i++) fgets(s[i],200,fin); // 浠ュ瓧绗︿覆褰㈠紡 璇4琛 for (i=0;i<4;i+...
  • C璇█鑳藉疄鐜版妸浜岀淮鏁扮粍涓煇涓琛屾墍鏈夌殑瀛楃瀵煎叆鍒版煇涓涓竴缁村瓧绗︽暟缁勪腑鍚...
    绛旓細鑳斤紝鐢╯trcpy鐩存帴澶嶅埗锛岃鏄病鏈夌粨鏉熺鍙互鑷繁娣诲姞涓涓紝澶嶅埗瀹屽啀鎭㈠锛屽鏋滄暟缁勯暱搴︿笉澶熸坊鍔犵粨鏉熺锛岀敤memcpy鏉ュ鍒
  • C璇█涓浣璇诲彇TXT鏂囦欢涓煇涓鍒楃殑鏁版嵁瀛樻斁鍒颁竴涓竴缁存暟缁勪腑?
    绛旓細double a[200]; //鏁扮粍澶у皬瑕佽冻澶 int i,n;fin=fopen("a.dat","r"); //鎵撳紑a.dat鏂囦欢 if (!fin){printf("open error\n"); return 1;}; //鎵撳紑澶辫触澶勭悊 printf("reading ...\n" );n=0;while (1){ if ( fscanf(fin,"%*d %lf %*lf",&a[n])==EOF) break; ...
  • C璇█涓璇诲彇鏂囦欢鏃鎬庝箞璺宠繃鏌愯
    绛旓細鍙互浣跨敤fseek鍑芥暟锛岀洿鎺ュ亸绉绘寚閽堢殑鎸囧悜浣嶇疆鍒扮浜岃銆傚嚱鏁板師鍨 int fseek(FILE *stream, long offset, int fromwhere);鍑芥暟璁剧疆鏂囦欢鎸囬拡stream鐨勪綅缃傚鏋滄墽琛屾垚鍔燂紝stream灏嗘寚鍚戜互fromwhere涓哄熀鍑嗭紝鍋忕Щoffset锛堟寚閽堝亸绉婚噺锛変釜瀛楄妭鐨勪綅缃紝鍑芥暟杩斿洖0銆傚鏋滄墽琛屽け璐(姣斿offset瓒呰繃鏂囦欢鑷韩澶у皬)锛屽垯涓嶆敼鍙...
  • 鏍囧噯C璇█涓浣涓娆¤鍙栨煇鏂囦欢涓殑澶氳鏁版嵁
    绛旓細涓銆佷互fscanf璇诲彇銆俧scanf璇诲彇鏃讹紝榛樿浼氬埌绌虹櫧瀛楃鎴銆傛墍浠ュ鏋鏂囦欢涓涓嶅瓨鍦ㄥ叾瀹冪┖鐧藉瓧绗︼紝閭d箞鍙互浠scanf瀹炵幇涓娆℃ц鍙栧琛岀殑鏁堟灉锛屾瘮濡傛枃浠朵腑瀛樺偍涓 12.3name閭d箞瑕佷竴娆℃ц鍙栬繖涓夎鏁版嵁锛屽彲浠ヤ娇鐢細int a;float b;char c[20];fscanf(fp, "%d%f%s",&a,&b,c);鍏朵腑锛宖p涓烘墦寮璇ユ枃浠剁殑鏂囦欢...
  • 缂栫▼澧炲姞缂╄繘蹇嵎閿(c璇█缂╄繘蹇嵎閿)
    绛旓細c璇█缂╄繘蹇嵎閿畍cCtrl+Shift+Z/Ctrl+Y :Redo銆侳1 鏄剧ず甯姪,濡傛灉鍏夋爣鍋滃湪浠g爜鐨勬煇涓瓧绗︿笂,鏄剧ずMSDN涓浉搴旂殑甯姪鍐呭F2 涔︾鍔熻兘: Ctrl+F2 --鍦鏌愯璁剧疆涓涓功绛(鍐嶆寜涓娆℃鏄彇娑)F2 --璺冲埌涓嬩竴涓功绛句綅缃甋hift+F2 --璺冲埌涓婁竴涓功绛句綅缃瓹trl+Shift+F2 --鍒犻櫎鎵鏈変功绛...
  • 扩展阅读:c语言头文件及其用法大全 ... c#读取excel文件 ... c语言读取文件每一行 ... c语言考生文件夹在哪里 ... c语言编程自学 ... c语言必背100代码 ... c#截取字符串中的一部分 ... c语言读取txt文件内容 ... c语言中读取文件 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网