解析C ++中用引号括起来的东西

时间:2015-07-01 01:52:15

标签: c++ fstream

我试图制作一个解析器,只能将文字包围在引号中,并将其放在一个新文件中我已经多次尝试但是无法弄清楚它是否必须顺便把原始文本从文件中取出,然后将它放在一个新文件中,我希望用C ++做到这一点。

这就是我目前所拥有的:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    char current_letter;
    char quote_mark = '"';
    int isquote = 0;

    std::cin >> current_letter;

    LOOP : do
{
    if(current_letter == quote_mark) {++isquote;}
        if(isquote == 1 && current_letter != quote_mark) {std::cout << current_letter;}
        if(isquote == 1 && current_letter == quote_mark) {--isquote;}
        if(isquote == 0) {goto LOOP;}
} while (cin >> current_letter);

if(cin != current_letter) {cout << "END" <<endl;}

return(0);

它现在不打印任何东西,但它用于打印随机的东西或只是引号。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

string str;
getline(cin, str);
string currStr = "";

for (int i = 0; i < str.length(); i++)
{
  if (str[i] != '\"') currStr += str[i];
}

cout << currStr << "\n";

如果要解析的文本中有双引号,则无效。