gpt4 book ai didi

C++ - main 的参数

转载 作者:行者123 更新时间:2023-11-27 22:30:25 26 4
gpt4 key购买 nike

非常基本的问题。我尝试编写一个程序来输出拖到 exe 上的文件的文件名。

我遵循了本指南的主要论点: http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html

这是我的代码:

#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"num arguments: "<<argc<<"\n";

while(argc--)
printf("%s\n", *argv++);

cout<<"press any key";
getchar();
return 0;
}

但它输出的是:

如果我运行它时没有将文件拖放到 exe 上:

参数个数:1

G

按任意键

如果我拖放 3 个文件,它将输出:

参数数量:4

G

G

G

G

按任意键

应用程序名称和任何文件的名称都不以“G”开头

有什么问题吗?

谢谢!

最佳答案

你只得到第一个字母,因为你混合了 Unicode 而不是。对不起,我无法解释 Gs(除非你的所有文件都在驱动器 G:?),但你会看到完整的文件名带有

while(argc--)
_tprintf(_T("%s\n"), *argv++);

相反。

事后思考,并被 sbi 的回答击败:我找不到 _tcout 用作

_tcout << *argv++;

相反,如果您想保留 C++ - 我想您必须定义一个,例如

#ifdef _UNICODE
#define _tcin wcin
#define _tcout wcout
#define _tcerr wcerr
#define _tclog wclog
#else
#define _tcin cin
#define _tcout cout
#define _tcerr cerr
#define _tclog clog
#endif

虽然这是 C++,但它们可能不应该被定义,而是其他东西,我不是 100% 确定是什么。

关于C++ - main 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3171461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com