c# 读取txt文件中特定内容后的数据 5

例如我有个文本,a.txt,内容如下da=5bb=3ce=4等等可以看出,是值对的形式,空格分隔,但是空格数量0或更多然后我想直接读出其中的ce后面的值是多少,应该怎么写... 例如我有个文本,a.txt,内容如下
da = 5 bb = 3 ce=4 等等
可以看出,是值对的形式,空格分隔,但是空格数量0或更多

然后我想直接读出其中的ce后面的值是多少,应该怎么写?

谢谢……
后面可能还有de = 9啊,什么的
展开
 我来答
tattackor
推荐于2016-08-11 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:878万
展开全部

使用fopen,fscanf函数可以实现从txt文件当中读取内容,进行简单操作。

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.例程:

#include<stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
char c;
int main(){
    FILE*fp=NULL;//需要注意
    fp=fopen(F_PATH,"r");
    if(NULL==fp) return -1;//要返回错误代码
    while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来
    fclose(fp);
    fp=NULL;//需要指向空,否则会指向原打开文件地址    
    return 0;
}
心悦网络
2012-03-08 · 知道合伙人互联网行家
心悦网络
知道合伙人互联网行家
采纳数:136 获赞数:401
网络营销从业6年 芦酵主品牌营销经理 高乐迪首席网络运营官

向TA提问 私信TA
展开全部
static void Main(string[] args)
{
string str = "da = 5 bb = 3 ce=4";
for (int i = 0; i < str.Length; i++)
{
if (str[i] == 'e')
{
Console.WriteLine("ce后的数据为:");
for (int j = i + 1; j < str.Length; j++)
{ Console.Write(str[j]); }

}
}
}
你就不会把e改为de或者ce吗?
还有另外一段代码给你参考,希望你能举一反三,直接给出答案多没意思:
Console.WriteLine("请输入一个英文句子");
string s = Console.ReadLine();//读取数据
//把这个句子以“,”“。”“!”分隔开,存到数组里。
string[] word = s.Split(new char[]{',','?','.','!',' '});
//遍历数组里所有的元素
foreach(string str in word )
if(str!="")
{
Console.WriteLine(str );
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
热心还清爽灬松柏Sbc9
2012-03-04
知道答主
回答量:40
采纳率:0%
帮助的人:26.5万
展开全部
用正则表达式来分析
命名空间:using System.Text.RegularExpressions;
代码:
string _buff = "da = 5 bb = 3 ce=4"; //这里模拟读入了文件的内容,_buff 要替换成 你从文本里面读取的字符串
Regex _reg = new Regex(@"[a-zA-Z_]\w*\s*=\s*(\d+(?!\.|x|e|d|m)u?)|^0x([\da-f]+(?!\.|x|m)u?)"); //定义正则表达式
MatchCollection mc = _reg.Matches(_buff); //匹配所有结果
Dictionary<string, int> _mydic = new Dictionary<string, int>(); //存放结果的dic
foreach (Match nObj in mc) //遍历所有结果
{
string _obj = nObj.Value;
_obj = _obj.Replace(" ","");
_mydic.Add(_obj.Split('=')[0], Convert.ToInt32(_obj.Split('=')[1]));
}
要想得到哪个的值就用 _mydic["变量名"] 比如想得到 da 的值 就是:
int test = _mydic["da"];
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
师帅921007
2012-03-04 · 贡献了超过198个回答
知道答主
回答量:198
采纳率:0%
帮助的人:86.8万
展开全部
截取字符串吧
关键字设为ce啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QQ392503383
2012-03-03
知道答主
回答量:18
采纳率:0%
帮助的人:8.1万
展开全部
截取字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式