2010-03-10 95 views
1

我目前正在开发一个应用程序,它从文本文件获取输入并相应地执行。概念是输入文件将具有在此fomat从C++中的文件获取输入

A AND B 
     B OR C 

每一条线路将由空白空间被分隔和输入必须从文本文件中截取并处理逻辑的信息。我使用TCPP编译器,并且在阅读输入时遇到问题。请帮我这个问题...

+1

它会帮助,如果你将发布什么样的代码是你目前正在使用,或为t他的硬件问题? – anijhaw 2010-03-10 02:39:48

+0

那么你在阅读输入时面临的问题是什么? – stefanB 2010-03-10 02:41:02

+0

没有..它不是一个硬件问题..我得到的错误是“错误读取文件”,我也不知道如何从文件中获得逐行输入 – Greenhorn 2010-03-10 02:47:24

回答

3

读取输入在时间线通常与std::getline完成的,这样的事情:

std::string line; 
std::ifstream infile("filename"); 

while (std::getline(line, infile)) 
    // show what we read 
    std::cout << line << "\n"; 

如果您遇到这样的事情烦恼,你可能考虑寻找一本关于C++的(更好的)书,而不是你现在(希望)使用的书。在C++或焦炭

包括

或的#include,你可以使用fileobject.getline(中),(不检查其正确的语法。)功能:

+0

THY你杰里,它的工作:) – Greenhorn 2010-03-11 11:36:11

0

您使用HEADR文件如通过使用炭fileobject.get(CH)样的功能

1

可以使用如下的通俗易懂:

BOOL ReadFile(CString filename) 
{ 
    BOOL bRead = TRUE; 

    std::ifstream m_strmFile; 
    m_strmFile.open(filename, std::ios::in); 

    char pszLine[256]; 
    memset(pszLine, 256, 0); 

    if (m_strmFile) 
    { 
     // Read whatever number of lines in your file 
     for (unsigned int i = 0; i < 5/*number of lines*/; i++) 
     m_strmFile.getline(pszLine, 256); 
     // Do whatever you want to do with your read lines here... 
    } 
    else bRead = FALSE; 

    return bRead; 
} 
+0

TCPP(Turbo C Plus Plus)中的以下符号:'BOOL','CString'?我相信这些都是微软的条款。 – 2010-03-10 19:51:56

+0

@ Thomas 你是对的。这些条款来自MS VS.哪里不对了? @ TCPP:请使用bool和const char *而不是BOOL和CString或typedef bool BOOL – 2010-03-13 17:53:18