尝试将文本文本中的文本存储在Array C ++中

时间:2017-10-03 02:30:19

标签: c++

version: "3.2"
services:
    php:
        image: php:7.1-apache
        container_name: web
        restart: always
        volumes:
            - /.../php:/var/www/html
        ports:
            - "8000:80"
    mariadb:
        image: mariadb:latest
        container_name: db
        restart: always
        environment:
            - MYSQL_ROOT_PASSWORD=12345
        volumes:
            - /.../mariadb/initdb:/docker-entrypoint-initdb.d
            - /.../mariadb/data:/var/lib/mysql
        ports:
            - "3306:3306"

}

程序没有通过 while循环而(ifs.getline(line,80))。有谁可以帮助我吗?编程很新。假设将所有文本文件存储在数组中。 TIA

1 个答案:

答案 0 :(得分:0)

所以,你告诉这个问题的地方好像在这里,我会给出答案。

首先,我建议你阅读getline() API以了解它是如何工作的,这将有助于长时间运行。 (因为你提到你是新人)

就您对API的使用而言.. while(ifs.getline(line,80))

  1. 您可以使用ifs.eof()检查文件是否为空。参考此API
  2. 如果您的行超过80个字符,那么它也会跳过循环。
  3. 所以有这两种可能性可能是你控制不进去的原因,Debug并找出实际原因。如果仍未解决,请输入您正在阅读的文件。

    编辑:在您的文件中试用此代码。工作代码供您参考。 (灵感来自您的问题陈述代码)

    注意 :在使用之前了解所有API

    #include<iostream>
    #include<fstream>
    
    int main(int argc, char* argv[]) {
        ifstream ifs;
    
        if(argc!=2)  {
            std::cout << "Please type main.exe and file name to run the program! Please Try Again" << std::endl;
        }
    
        ifs.open(argv[1], std::ifstream::in);
    
        if (!ifs.is_open())  {
            cout << "wrong file name! please open again!" << endl;
        }
    
        char line[80];
        char *point; //NOT needed for my samplecode, have just kept from your code
    
        while(ifs.getline(line,80))   //problem seem to be here
        {
            cout << "line =" << line << endl;
            //TODO:: Write your business logic here.
        }
    
        ifs.close();
    }