Мне нужна помощь, потому что я не получаю ожидаемый результат при попытке прочитать аргументы командной строки. Это действительно странно, потому что я скопировал и вставлял код в обычное консольное приложение, и оно работает так, как ожидалось. Стоит отметить, что я бегу Windows 7 и в визуальной студии я ставлю аргумент командной строки будет test.pngОшибка чтения аргументов командной строки в консольном приложении Win32?
Win32 код:
#include "stdafx.h"
using namespace std;
int _tmain(int argc, char* argv[])
{
//Questions: why doesn't this work (but the one in helloworld does)
//What are object files? In unix I can execute using ./ but here I need to go to debug in top directory and execute the .exe
printf("hello\n");
printf("First argument: %s\n", argv[0]);
printf("Second argument: %s\n", argv[1]);
int i;
scanf("%d", &i);
return 0;
}
Выход:
hello
First Argument: C
Second Argument: t
Я пытался создавая простое консольное приложение и оно работает:
#include <iostream>
using namespace std;
int main(int arg, char* argv[])
{
printf("hello\n");
printf("First argument: %s\n", argv[0]);
printf("Second argument: %s\n", argv[1]);
int i;
scanf("%d", &i);
return 0;
}
Выход:
hello
First Argument: path/to/hello_world.exe
Second Argument: test.png
Кто-нибудь знает, что происходит?
Предполагаю, что у вас есть сборка Unicode, но они пытаются напечатать строки, как если бы они были Ansi. –
@JonathanPotter Как это происходит, и все еще связь? Или это проблема в первую очередь (не строит)? Я согласен с тобой, я просто не понимаю, как это происходит. странный. – WhozCraig
@WhozCraig: Я тоже, хотя нет гарантии, что здесь показан код * на самом деле * скомпилированный код. –