C中可用的标准预定义MACRO __FILE__显示文件的完整路径.有没有办法缩短路径?我的意思是代替
/full/path/to/file.c
Run Code Online (Sandbox Code Playgroud)
我知道了
to/file.c
Run Code Online (Sandbox Code Playgroud)
要么
file.c
Run Code Online (Sandbox Code Playgroud) 有没有办法写入控制台/命令提示符/ powershell(如Console.WriteLine())或UWP应用程序中的类似内容?
如果控制台不可用,那么我可以使用一个合适的替代方法来向屏幕写入大量文本吗?
当然,我可以对它进行XAML控制并输出,但与简单相比,它似乎并不方便Console.WriteLine().
关于WPF控制台也有很老的讨论,但似乎没有任何工作(至少,我找不到Project-Properties-Application tab-Output Type-Console Application并且Trace.WriteLine("text")不可用).
我在VS 2012中有一个托管C++单元测试.测试运行正常,我可以验证是否cout执行了多个调用的循环.
但是,当我查看测试资源管理器时,测试标记为已通过,但输出没有超链接,因为我习惯于c#项目.
我测试结束时的代码是
for (int i = 0; i < 4; i++)
{
cout << parameters[i];
cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
当我在调试器中逐步执行它时,我可以验证它.我也试过
cerr但没有区别.
有什么情况什么时候std::cout << "hello"不起作用?我有ac/c ++代码,但是std::cout不打印任何东西,甚至不是常量字符串(例如"hello").
有没有办法检查是否cout能够/无法打开流?还有像一些成员函数good(),bad()...但我不知道哪一个是适合我.
我在Visual Studio 2010中启动了一个空白项目来编写C应用程序.如何将调试信息发送到" 输出"窗口(菜单" 调试" - >" Windows" - >" 输出")?是否有相对简单的方法来实现TRACE或OutputDebugString类似的东西?
我尝试将此代码输出到控制台:
#include <Windows.h>
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
AllocConsole();
HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
int hCrt = _open_osfhandle((long) handle_out, _O_TEXT);
FILE* hf_out = _fdopen(hCrt, "w");
setvbuf(hf_out, NULL, _IONBF, 1);
*stdout = *hf_out;
HANDLE handle_in = GetStdHandle(STD_INPUT_HANDLE);
hCrt = _open_osfhandle((long) handle_in, _O_TEXT);
FILE* hf_in = _fdopen(hCrt, "r");
setvbuf(hf_in, NULL, _IONBF, 128);
*stdin = *hf_in;
printf("Hello!");
}
Run Code Online (Sandbox Code Playgroud)
控制台打开但没有输出任何内容.这段代码出了什么问题?
我尝试了所有这些建议:
https://justcheckingonall.wordpress.com/2008/08/29/console-window-win32-app/
http://dslweb.nwnexus.com/~ast/dload/guicon.htm
但我无法获得任何输出到WinMain中Windows 10上使用AllocConsole()创建的控制台.注意:我实际上没有创建任何真正的Window.在Window 10中有什么改变阻止上述解决方案工作或者是否存在我可能缺少的东西(编译器标志或其他东西)?
你怎么看?
我正在使用MinGW在Windows上构建我的应用程序.编译和链接时,选项"-mwindows"放在命令行中以具有Win32 API函数.
更具体一点:当没有"-mwindows"这样调用MinGW的GCC时:
c:\>g++ -c main.cpp
c:\>g++ -o main.exe main.o
Run Code Online (Sandbox Code Playgroud)
上面2个命令行之后的'main.exe'将使用控制台运行,并且Win32 API函数将无法使用.
用这样的"-mwindows"调用MinGW的GCC时:
c:\>g++ -c main.cpp
c:\>g++ -o main.exe main.o -mwindows
Run Code Online (Sandbox Code Playgroud)
现在链接'-mwindows','main.exe'可以使用Win32 API,但是,它不会在应用程序运行时启动控制台.
这个"-mwindows"选项禁用控制台,这使我无法打印出调试信息.保持控制台和选项'-mwindows'的任何方法?
我开始使用Windows API做一些工作.但是,我注意到如果你有一个窗口应用程序,就不能使用像printf这样的函数.打印调试和记录信息的标准方法是什么?对不起,如果这是一个明显的问题.
我在Visual Studio 2015中添加了一个断点,并带有将字符串输出到Output Window的操作。最后会有一个自动添加的换行符。问题是,我以前的输出消息(断点未输出)没有换行符。
因此,我想在字符串的开头添加新的换行符,以避免它与我之前的消息混淆。我试图添加\n,但是\n输出保持原样,没有被逃脱。
如何在断点动作中添加换行符?