读书人

sscanf应用有关问题

发布时间: 2012-03-03 15:33:04 作者: rapoo

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);

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

读书人网 >C语言

热点推荐