C++的命令行参数
Command line arguments for C++?
对于我的赋值,它说我要使用命令行参数/a.out user1.txt(文本文件名可以更改)
我的主.cpp 中有以下内容
int main(int argc, char* argv[]){
string name;
name = argv[1];
}
但不知道如何在BBoard cpp 中将名称输入我的BBoard设置功能
#include "BBoard.h"
#include <fstream>
#include <algorithm>
using namespace std;
User user_l;
BBoard::BBoard(){
title = "Default BBoard";
vector<User> user_list;
User current_user;
vector<Message> message_list;
}
BBoard::BBoard(const string &ttl){
title = ttl;
}
void BBoard::setup(const string &input_file){
ifstream fin;;
fin.open(input_file);
while(!fin.eof()){
user_list.push_back(user_l);
}
}
此处为B板标题
#ifndef BBOARD_H
#define BBOARD_H
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class User
{
public:
User() { }
User(const std::string& _name, const std::string& _pass)
: name(_name), pass(_pass)
{ }
friend bool operator==(const User& lhs, const User& rhs)
{
return (lhs.name == rhs.name) &&
(lhs.pass == rhs.pass);
}
private:
std::string name;
std::string pass;
};
class Message{
};
class BBoard{
private:
string title;
vector<User> user_list;
User current_user;
vector<Message> message_list;
public:
BBoard();
BBoard(const string &ttl);
};
#endif
编辑:如何使用主cpp中的对象将名称发送到BBoard函数?当我尝试将主cpp包含到我的板cpp中时,我会出现错误。
创建一个BBoard
,然后调用setup
函数:
if (argc > 1) {
string name = argv[1];
BBoard board;
board.setup(name);
}
你太接近了。您只需要编辑main()
函数来创建BBoard
对象,并将name
传递给它,就像将argv[1]
传递给std::string
一样。然后,您可以调用该对象上的函数,或者将该对象传递给其他函数。
风格建议:
如果有人忘记将文件名传递给程序,该怎么办?就目前情况来看,你崩溃了。如果argc
只有1:,那么很容易告诉用户出了什么问题并保释
if (argc == 1) {
cout << "usage: a.out file.txtn";
return 1;
}
并不是所有的程序员都使用using namespace std
。在.cpp
文件中这样做没有错,但当#include
处理头文件会在未经我同意的情况下为我调用using namespace XXX
时,我个人会感到不安实际上,您的头文件已经完全限定了为了避免我在使用您的标头时感到不安,您只需从标头中删除std
命名空间中的内容,因此您可以从头中删除该行,而无需进行其他更改using namespace std
,并使用std::vector
而不是简单的vector
。
相关文章:
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 使用 C++ 将命令行参数拆分为参数/向量
- 如何在OMNET++中添加专门的命令行参数?
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- atoi() 在应用于大型命令行参数时会产生不正确的值
- 是否可以在命令行中将输入参数传递给可执行文件
- 命令行参数,cant 或两个变量
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- 如何在 Android/NDK 上将命令行参数从 gradlew.bat 传递到 Clang
- 编写一个将 LLVM IR 文件作为命令行参数的程序
- 通过命令行参数获取llvm ir文件时面临问题
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- 从命令行获取参数时出现问题
- 如何在不使用文件扩展名的情况下使用命令行参数打开C++中的文本文件?
- 命令行参数在不到 3 个 LOC 中 int?
- 在命令行参数中使用引号
- 使用参数 + stdout + stderr 从命令行调用 MFC 应用程序
- 在VS2013中使用devenv (C++)传递命令行参数argv
- 二进制数据作为命令行参数