2013-10-05 48 views
0

我想写一个C++程序来打开一个txt文件,然后搜索忽略所有文本,直到找到字符串“partNumberHere” {1305001}”。{ “1647823},” {} 1984395C++需要搜索文档字符串全部忽略,但部分数字

我有发现问题,我应该用什么。我曾经使用过cin.ignore(),但只忽略数量的字符,直到击中某个字符。

所以,我需要知道什么命令来搜索PartnumberHere文本文件一旦合适的文本中找到我需要忽略各种特殊字符(” { - )。并且只捕获的数量。

任何帮助非常感谢。

+0

你可以研究诸如'stringstream'和'substr'之类的东西。如果不需要使用C++,则可以使用UNIX实用程序(例如'grep','cut'或'awk')创建一个shell脚本来捕获这些数字。 – Sualkcin

回答

0

逐行读取,直到找到特定的行。

std::string line; 
std::ifstream fin("filename.txt"); 

while(std::getline(fin,line)) 
{ 
    if(line.find("partNumberHere") != std::string::npos) 
     break; 
} 
fin.close(); 
/* 
variable line contains your required partNumberHere line 
*/ 
+0

谢谢!我不明白的唯一部分是“!= std :: string :: npos”这部分是做什么的?此外,一旦程序找到partnumber文本,如何将数字存储为int值而忽略特殊字符? – user2832891

+0

@ user2832891'的std ::当没有找到匹配的字符串:: npos'返回,请参阅[这](http://en.cppreference.com/w/cpp/string/basic_string/npos),关于数抽取你可以尝试['stringstream'](http://en.cppreference.com/w/cpp/io/basic_stringstream),如果丢失,请再次回来;) – P0W

相关问题