如何将 LPTSTR 转换为 const char*?

how to cast LPTSTR to const char*?

提问人:todel23 提问时间:5/19/2023 更新时间:5/19/2023 访问量:57

问:

我需要读取用户输入的数据并将其写入文件。.txt

对于我使用的读取,它返回 的类型,然后我需要将其写入一个最好使用 function 的文件(与项目的其余部分保持一致)。GetDlgItemTextLPTSTR.txtfprintf

我应该按照哪个顺序进行类型转换?

C++ 字符串 强制转换

评论

0赞 Pepijn Kramer 5/19/2023
你不能施放,你必须皈依。虽然你也可以使用 std::wofstream 并在不转换的情况下写入文件。
0赞 Alan Birtles 5/19/2023
取决于你的意思,取决于你的编译器设置,它最终或LPTSTRchar*wchar_t*
3赞 PaulMcKenzie 5/19/2023
我应该按照哪个顺序进行类型转换?-- 永远不要仅仅为了满足编译器而转换字符串类型。使用函数所需的正确字符串类型,或调用接受字符串类型的函数而不进行强制转换。如果你发现自己转换了一个字符串类型,这意味着你做错了什么,或者你有经验,当他们规避编译器错误时,他们确切地知道他们在做什么,因为类型不同

答:

2赞 john 5/19/2023 #1

正如您所说,不要使用 which requires ,而是使用 GetDlgItemTextA 它需要 .GetDlgItemTextLPTSTRLPSTR

LPTSTR可以是,也可以是,具体取决于您的编译器设置,但始终如此,因此不需要强制转换或转换。char*wchar_t*LPSTRchar*

0赞 i486 5/19/2023 #2

我猜项目是Unicode(否则是)。使用函数将Unicode转换为ANSI。但您也可以将其存储在Unicode文本文件中而无需转换。LPTSTRchar *WideCharToMultiByte()