C语言怎么做到从文件中读取一行数据,然后改变这一行内容 c语言如何从文件中读入一行数据

C\u8bed\u8a00\u600e\u4e48\u4fee\u6539txt\u6587\u4ef6\u4e2d\u7684\u4e00\u884c\u6570\u636e

\u5173\u4e8e\u8fd9\u4e2a\u95ee\u9898\uff0c\u672c\u4eba\u4e5f\u6ca1\u6709\u4ec0\u4e48\u597d\u7684\u65b9\u6cd5\u3002
\u63d0\u4e2a\u5efa\u8bae\uff1a\u9996\u5148\u5c06\u540e100\u4e2a\u5b57\u7b26\u8bfb\u5165\u6570\u7ec4\uff0c\u5185\u5b58\u8bbf\u95ee\u80af\u5b9a\u6bd4\u6587\u4ef6\u8bbf\u95ee\u8981\u5feb
\u5c31\u662f\u8fd9\u5757\uff1a
do
{
fscanf(fp,"%c",&mm); //\u9010\u884c\u626b\u63cf
}
while(mm!='\n'); //\u5224\u65ad\u5012\u6570\u7b2c\u4e8c\u884c\u7684\u6362\u884c\u7b26

\u53e6\u5916\u82e5\u60f3\u6539\u8fdb\uff0c\u4e2a\u4eba\u611f\u89c9\u6587\u4ef6\u7684\u78c1\u76d8\u8bbf\u95ee\u672c\u8eab\u5c31\u5f88\u6162\uff0c\u53ef\u4ee5\u8003\u8651\u5728\u6587\u4ef6\u4e0d\u5927\u65f6\u76f4\u63a5\u7528\u4e00\u4e9b\u5185\u5b58\u64cd\u4f5c

\u5173\u952e\u6280\u5de7\uff1a
\u6bcf\u884c\u6570\u636e\u4e2a\u6570\u968f\u673a\uff0c\u53ef\u7528
c
=
fgetc(fin);
ungetc(c,fin);
\u68c0\u67e5\u662f\u5426\u8bfb\u5230
\u6362\u884c\u7b26\u6216\u6587\u4ef6\u7ed3\u675f\u7b26\u3002
\u4f8b\u5982\uff1a
a.txt
1
2
3
45
56
6
7
8
9
10
\u81f3\u4e8e\u8bb0\u5f55\u6bcf\u884c\u6570\u636e\u4e2a\u6570\uff0c\u5b58\u653e\u5230\u6570\u7ec4\uff0c\u7b49\u7b49\uff0c\u53ef\u4ee5\u81ea\u5df1\u8865\u5145\u5b8c\u5584\u3002
\u7a0b\u5e8f\uff1a
#include

int
main(
)
{
file
*fin;
int
a,c;
fin=fopen("a.txt","rw");
while(1){
c
=
fgetc(fin);
if
(c==eof)
break;
if
(c=='\n')
{printf("\n==========\n");
continue;};
ungetc(c,fin);
fscanf(fin,"%d",&a);
printf("%d
",a);
}
fclose(fin);
return
0;
}

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
",i,a);
  printf("第%d列数据:%s
",j,b);
  fclose(fp);
}


楼主可以查一下fprintf, fscanf, fgetc, fgets, fread, fopen, fclose这些函数。前缀f表示的就是文件版本的输入输出函数(printf,scanf这些函数楼主想必知道吧?)
不懂可追问,祝楼主学习愉快。

  • 鐢c璇█鎬庝箞璇诲彇txt鏂囦欢涓鐨勮鏁
    绛旓細= EOF) if(c=='\n') lines++; printf("%d\n",lines); fclose(fp); } return 0;}涔熷彲浠ラ氳繃fgets鍑芥暟锛屾瘡娆璇诲彇涓琛锛屽埌鏂囦欢灏撅紝鐒跺悗璁$畻璇诲彇鐨勬鏁 include <stdio.h>#include <string.h>int main(){ char s[100]; FILE *fp; int lines=0; fp=fopen("...
  • 濡備綍鐢c璇█浠txt鏂囦欢涓鍙鏁版嵁
    绛旓細鐢C璇█浠txt鏂囦欢涓鍙鏁版嵁锛屽彲浠ヤ娇鐢–鏍囧噯搴撴枃浠惰嚜甯︾殑鏂囦欢鎺ュ彛鍑芥暟杩涜鎿嶄綔銆備竴銆佹墦寮鏂囦欢锛欶ILE *fopen(const char *filename, const char *mode);鍥犱负txt鏂囦欢涓烘枃鏈枃浠讹紝 鎵浠ユ墦寮鏃堕夋嫨鐨刴ode搴斾负"r"鎴栬"rt"銆備簩銆璇诲彇鏂囦欢锛氳鍙栨枃浠跺簲鏍规嵁鏂囦欢鍐呭鐨勬牸寮忥紝浠ュ強绋嬪簭瑕佹眰锛岄夋嫨璇诲彇鏂囦欢鐨勫嚱鏁般
  • c璇█涓浣曚粠鏂囦欢閲岃鍙涓娈靛瓧绗︿覆,鑷虫崲琛岀
    绛旓細fgets璇诲彇涓琛锛宖getc璇诲彇涓涓瓧绗︼紝fread璇诲彇浣犳兂瑕佺殑闀垮害 FILE *fp = fopen(fileName,"r");if (fp != NULL){ char buf[1024] = {0};fgets(buf,fp);} fclose(fp);
  • c璇█:浠庢枃浠f1.txt璇诲叆涓琛瀛楃,灏嗗叾涓墍鏈夊皬鍐欏瓧姣嶆敼鍐欎负澶у啓瀛楁瘝,鐒 ...
    绛旓細int i;if ( (fin = fopen("f1.txt","r"))==NULL){ printf("Can not open f1.txt\n"); return 0;}; //浣滀负璇伙紝鎵撳紑鏂囦欢 fgets( s,1024,fin); //璇讳竴琛 fclose(fin); //鍏虫枃浠 if ( (fout = fopen("f2.txt","w"))==NULL){ printf("Can not open f2.txt\n...
  • 濡備綍鐢C璇█,璇绘枃浠朵腑鏌愯鏌愬垪鐨勬暟鎹
    绛旓細include <stdio.h> include <string.h> include <stdlib.h> int fileToFile(char *nameSrc, char *nameDes);char * getLineBuf(int line, int col, int len, char *filename);/ 璇存槑锛1.浣跨敤浜嗗唴瀛樺疄鏃跺垎閰嶏紝鍙互婊¤冻璇诲彇浠绘剰闀垮害鐨勫瓧绗 浣嗘槸锛岄渶瑕佽皟鐢ㄦ椂鎵嬪姩閲婃斁鍐呭瓨锛屽惁鍒欏唴瀛樻硠闇层2.瀵...
  • c璇█涓浣曡鍙鏂囨湰鏂囦欢涓姣涓琛鐨勬暟鎹
    绛旓細鐢╢stream锛鏂囦欢娴侊級锛宖stream file 鐒跺悗 file.getline锛坈har*锛宨nt锛宑har a=鈥榎n鈥欙級绗竴涓槸涓涓瓨鍌ㄥ瓧绗︿覆鐨勬寚閽堬紝绗簩涓槸瑕璇诲彇鐨勬渶澶ч暱搴︼紝绗笁涓槸琛岀粨鏉熺锛岄粯璁ゆ槸鍥炶溅锛屽嚱鏁拌鏄庡氨鏄綋璇诲叆鐨勫瓧绗﹁秴杩囨渶澶ч暱搴nt鎴栬呴亣鍒拌缁撴潫绗︼紙鈥榎n鈥欙級鏃跺氨鍋滄,鑰屼笖杩欎釜寰堝ソ鐢ㄧ殑锛堝浜庤鍏ュ拰鍐欏叆锛...
  • c璇█ 鎬庝箞浠庢枃浠朵腑璇诲彇鎸囧畾鍐呭
    绛旓細鍝ュ摜鎴戞兂鍑虹殑鍔炴硶鏄繖鏍风殑:鍥犱负鍏勫紵鏂囦欢鏍煎紡鏄涓琛屼竴琛鐨, 涓旀瘡琛屽紑澶存槸涓涓叧閿瓧,鐒跺悗鍚庨潰鏄浉搴旀暟鎹, 鎵浠ュ摜鍝ユ槸杩欎箞鎯崇殑, 姣斿瑕璇"AB2345"杩欎釜鍏抽敭瀛楀搴旇鐨勫唴瀹, 閭i鍏堢敤鍙橀噺鎴栬呭畯瀹氫箟瀹氫箟涓嬫潵, 鐒跺悗浠庢枃浠寮澶村紑濮, 涓涓瓧绗︿竴涓瓧绗︾殑鎵弿, 瀵规瘡涓琛岀殑寮濮嬬殑6涓瓧绗︾粍鎴愮殑鍏抽敭瀛楄鍑烘潵璺...
  • C璇█璇诲彇鏂囦欢鍐呭,鎸夎璇
    绛旓細C璇█閫愯璇诲彇鏂囦欢鍐呭 锛屽弬鑰冧唬鐮佸涓嬶細include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_LINE 1024int main(){ char buf[MAX_LINE]; /*缂撳啿鍖*/ FILE *fp; /*鏂囦欢鎸囬拡*/ int len; /*琛屽瓧绗︿釜鏁*/ if((fp = fopen("test.txt","r")) == NULL) { ...
  • c璇█ 璇讳竴琛
    绛旓細if( ( fin = fopen(namein, "r") ) == NULL ) { printf("can not open file %s\n",namein);exit (-1);};one_line = (char *) malloc(buff_size * sizeof(char));while ( fgets(one_line, buff_size,fin) !=NULL){ printf("I read: %s",one_line); // 璇讳竴琛鎵撲竴琛 ...
  • C璇█鍦TXT鏂囦欢涓浣曡鍙浠绘剰琛/涓暟鎹
    绛旓細浣跨敤fread鍑芥暟 C 鏍囧噯搴 - <stdio.h> 鎻忚堪 C 搴撳嚱鏁 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 浠庣粰瀹氭祦 stream 璇诲彇鏁版嵁鍒 ptr 鎵鎸囧悜鐨勬暟缁勪腑銆傚0鏄 涓嬮潰鏄 fread() 鍑芥暟鐨勫0鏄庛俿ize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)鍙傛暟...
  • 扩展阅读:c语言头文件及其用法大全 ... c语言入门程序 ... c语言打开文件并读取 ... c语言向文件写入数据 ... c语言如何读写文件 ... c语言逐个读取字符 ... c#读取excel文件 ... 读取整个文件的方法是 ... c语言输出数据写入文件 ...

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