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
答案 0 :(得分:0)
所以,你告诉这个问题的地方好像在这里,我会给出答案。
首先,我建议你阅读getline() API以了解它是如何工作的,这将有助于长时间运行。 (因为你提到你是新人)
就您对API的使用而言.. while(ifs.getline(line,80))
ifs.eof()
检查文件是否为空。参考此API。所以有这两种可能性可能是你控制不进去的原因,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();
}