C语言/C++ 一个按行读取 C盘某txt文档 (文档是按行更新的,只输出最新的一行) 怎么写,

如果指定输出最后一行 关键字 后6位数字 又该怎么写

方法很多,但都很麻烦,因为你的要求就不平常!下面提供一个方法,相对来说要简便一些。思路是这样的。 1、将每一行的字符个数及各个字符的ASCII值累加为一个整数作为.txt文档每一行的特征数据记录下来(存入一个数据文件)。2、读入更新后的.txt文档,同样获取每一行的特征数据,然后与上次数据对应比较,如果有一个数据不同,就说明该行已经更新,根据要求处理该行。

#include <stdio.h>
#include <stdlib.h>

int TotalValue(char *s,size_t *len) {
int i = 0,value = 0;
*len = 0;
while(s[i]) {
++(*len);
value += s[i++];
}
return value;
}

int main(){ 
int TV,nTV;
size_t size,len,nlen,num = 0;
char ParFile[] = "parFile.bin";
char DataFile[] = "dataFile.txt";
char Data[256];//假定最长行字符数不超过255个英文字符 
FILE *fpp,*fpd;
fpp = fopen(ParFile,"rb");
if(fpp == NULL) {//这还是第一次处理文件
if((fpd = fopen(DataFile,"rt")) == NULL) {
printf("无法打开数据文件:%s\n",DataFile);
exit(1);
}
}
fpp = fopen(ParFile,"rb");
while(!feof(fpp) && !feof(fpd)) {
fscanf(fpd,"%s",Data);
fread(&len,sizeof(int),1,fpp);
fread(&TV,sizeof(int),1,fpp);
nTV = TotalValue(Data,&nlen);
if(TV == nTV && len == nlen) continue;
else {
++num;
printf("%s\n",Data); // 显示更新后的文本行 
}
}
fclose(fpp);
fclose(fpd);
printf("共更新了%d行。\n",num);
fpd == fopen(DataFile,"rt");
fpp = fopen(ParFile,"wb");
while(!feof(fpp) && !feof(fpd)) {//重新获取文本文件特征数据 
fscanf(fpd,"%s",Data);
fread(&len,sizeof(int),1,fpp);
fread(&TV,sizeof(int),1,fpp);
nTV = TotalValue(Data,&nlen);
fwrite(&nlen,sizeof(int),1,fpp);
fwrite(&nTV,sizeof(int),1,fpp);
}
fclose(fpp);
fclose(fpd);
    return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言\/C++ 一个按行读取 C盘某txt文档 (文档是按行更新的,只输出最新...
1、将每一行的字符个数及各个字符的ASCII值累加为一个整数作为.txt文档每一行的特征数据记录下来(存入一个数据文件)。2、读入更新后的.txt文档,同样获取每一行的特征数据,然后与上次数据对应比较,如果有一个数据不同,就说明该行已经更新,根据要求处理该行。include <stdio.h>#include <stdlib.h>i...

C\/C++如何读取TXT文件的行数和把TXT文件的内容存到数组中
C语言读取TXT文件的行数并把把TXT文件的内容存到数组中,需要根据每行的内容(字符,数字,字符串)选取fgets、fscanf或者fgets。这里假设每行是一个字符串,每行不超过127个字符(用数组存字符串,最后一位存'\\0'),选取fgets进行读取。示例代码如下:include <stdio.h>#include <stdlib.h>int main...

C++如何按行读入TXT文件到数组
const int nLen = 101;int main(){ ifstream inobj("a.txt");char t[nLen];while (!inobj.eof()){ inobj.getline(t,nLen-1);cout<<t;} cout<<endl;return 0;} 会将txt中的所有字符在一行里输出,你也可以 cout<<t 的加上 cout<<endl;来行输出。只当给出简单操作吧 ...

C语言输入是怎么区分空格和回车的
C\/C++的输入,都是以:空格 TAB 回车 来判断一个输入是否结束的。

c语言,visual c++ 怎么让输出的值保持一个位置不停地更新,而不是一个...
移动光标啊! 每次输出使光标退回来,然后下一次输出覆盖前一次的输出就行了!上面的那种方法太***, 悲催。 你直接调用一个API吧光标移动一下,这种方法可以修改控制台输出的内容!或者还有一种方法:你的程序显示 60 % 肯定是在同一行,那么每次输出 **%的时候 在字符串后面加上 \\r , 然后下...

编写一个C语言程序:从键盘读入一行文本,统计每个英文字母出现的次数
1、循环读取字符,直到换行为止。对于每个字符,执行以下流程。2、判断是否为英文字母,即小写和大写两种。3、如果是英文字母,则统计个数。输入部分,可以存为数组,也可以每输入一个字符计算一次。二、参考代码:include <stdio.h>int main(){ int c; int cnt[52]={0}; while((c=get...

C语言\/c++如何把数输入到txt文件中去
C语言将数输入到文件中:首先,定义一个文件指针:FILE *fp;和一个数组:int a[5];然后,打开文件:fp = fopen ("filename.txt", "w"); \/\/"w"是打开文件方式,将原有内容清空写入新数据,如果文件不存在则新建,类似的还有"r"只读打开(不能写入);"a"向文件中追加内容,原有内容不变,等等 最...

c++中有一个文档需要解析,怎么用正则表达式取出文本里小括号中的字符...
((?<=\\w*\\()\\w+(?=\\)))+ 我用regextester试过,可以取出来的,如果你的字符串中不一定是字母或数字的话,你可以将 \\w 换成 .希望对你有用

...并将其输出来。最好输出到文档中。用c语言或c++
\/\/假设A.txt和B文件在同一目录#include <iostream>#include <string>#include <fstream>using namespace std;int main(){ ifstream in_file("A.txt"); if (!in_file) return 0; string file_name; while (getline(in_file, file_name)) { string file_path = "....

我用文本文档编写了一个.txt的程序,怎么样才能执行它?
比如vc++6.0 c-free 4.0 dev c++ 等(可以去百度找下载地址)安装好编译器后,把你的.txt文件改成.c后缀 双击后就可以打开 之后你必需编译,编译成功后才可以运行,在你保存程序的文件夹下就会生成一个.exe的文件 如果你没有C基础,而且不想学C,那么你就不用了解这个程序了。

相似回答