我正在编写一种只有一个关键字write
的小编程语言。我还没有做过解析器而是lexer。它工作正常,直到达到"
令牌。
main.cpp中:
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <vector>
using namespace std;
int main(int argc, char* argv[2])
{
char text;
string tok = "";
string str = "";
vector <string> tokens;
fstream inFile(argv[1]);
while (inFile >> noskipws >> text)
{
tok += text;
if (tok == "write")
{
tokens.push_back(tok);
tok = "";
}
else if(tok == "\"")
{
str += text;
tokens.push_back("String:"+str);
str = "";
tok = "";
tok += text;
}
for (auto const& c : tokens)
std::cout << c << ' ';
}
return 0;
}
的test.txt:
write "hello"
输出是:
write write write write write write write ...
而不是,
String:hello
我该怎么办?有什么想法吗?
答案 0 :(得分:0)
我认为它应该是$.fn.myFunction = function (splitId) {
var finalurl= "http://localhost/Games/Random/Resources/" + splitId;
console.log('called', finalurl);
$('#shore-5').css("background-image", 'url(' + finalurl+ ')');
}
$(function () {
$(this).myFunction('ship.JPG');
}());
而不是skipws
,因为当遇到&#34;写&#34;之间的空格时,你不会处理这种情况。和&#34;你好&#34 ;;特别是你不清除noskipws
,所以下一个循环仍然认为令牌是一个空格。