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);
不知道符不符合你的要求:)