首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

sscanf应用有关问题

2012-03-03 
sscanf应用问题如何在文本文件的一行中读出(“modelvaribles”)双引号和空格都要读出,格式参数应该怎么设置,

sscanf应用问题
如何在文本文件的一行中读出(“model   varibles”)   双引号和空格都要读出,格式参数应该怎么设置,例如   sadfd   :******   “model   varibles”yi

[解决办法]
用fgets()可以把文件中的空格, ", 回车等都能读出来

#include <iostream>
#include <cmath>
#include <cstdio>

using namespace std;

int main(){
FILE* fp = NULL;
fp = fopen( "main.cpp ", "r "); // 这个程序用来读取这个main.cpp文件

while (!feof(fp)) {
char line[129];
fgets(line, 128, fp); // 读取文件中的一行.
cout < < line;
}

fclose(fp);

return 0;
}
[解决办法]
这个有点麻烦,可不可以变通一下,先取你引号里的内容,最后再加个两个引号
char *ss = "sadfd :****** \ "model varibles\ " yi "; //这里的引号是英文的引号
char res[256];
memset(res,0,256);
res[0]= '\ " ';
sscanf(ss, "%*[^\ "]\ "%[^\ "] ",res+1);
res[strlen(res)]= '\ " ';
printf(res);


//如果是中文件的引号
char *ss = "sadfd :****** “model varibles” yi ";
char res[256];
memset(res,0,256);
res[0]= '“ ';
sscanf(ss, "%*[^“]“%[^“] ",res+1);
res[strlen(res)]= '” ';
printf(res);

不知道符不符合你的要求:)

热点排行