2010-03-10 6 views
1

Je suis en train de développer une application, qui obtient l'entrée d'un fichier texte et procède en conséquence. Le concept est le fichier d'entrée aura les détails dans ce fomatObtenir une entrée d'un fichier en C++

A AND B 
     B OR C 

Chaque ligne sera séparé par un espace vide et l'entrée doit être prise à partir du fichier texte et traité par la logique. J'utilise un compilateur TCPP et je suis confronté à des problèmes de lecture de l'entrée. S'il vous plaît aidez-moi la question ...

+1

il serait utile si vous posterais ce genre de code que vous utilisez actuellement, ou est t son problème HW? – anijhaw

+0

alors quel est le problème que vous rencontrez avec la lecture de l'entrée? – stefanB

+0

Non .. ce n'est pas un problème HW .. L'erreur que je reçois est "Erreur de lecture du fichier" et aussi je ne sais pas comment obtenir l'entrée ligne par ligne du fichier – Greenhorn

Répondre

3

entrée lecture d'une ligne à la fois est normalement fait avec std::getline, quelque chose comme ceci:

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

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

Si vous rencontrez des problèmes avec des choses comme cela, vous pourriez Pensez à chercher un (meilleur) livre sur C++ que tout ce que vous utilisez (espérons-le).

+0

Thnk You Jerry, cela a fonctionné :) – Greenhorn

0

utilisez-vous des fichiers HEADR comme:

comprennent

ou #include et vous pouvez utiliser la fileobject.getline(), (faire vérifier sa syntaxe.) Fonction en C++ ou pour carboniser par char utilisation fileobject.get (ch) type de fonction

1

suivant peut être utilisé immédiatement:

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

Les symboles suivants sont-ils dans TCPP (Turbo C Plus Plus): 'BOOL',' CString'? Je crois que ce sont des termes Microsoft. –

+0

@ Thomas Vous avez raison. Ces termes sont tirés de MS VS. Quelque chose ne va pas? @ TCPP: veuillez utiliser bool et const char * au lieu de BOOL et CString ou typedef bool BOOL –

Questions connexes