草庐IT

months3char

全部标签

c++ - int main(int argc, char *argv[])

如果我有这个:intmain(intargc,char*argv[])在正文中,您有时可以找到使用argv[1]的程序。我们什么时候使用argv[1]而不是argv[0]?是否仅当我们只想读取命令行中的第二个参数时? 最佳答案 按照惯例,argv[0]是当前程序的名称(或路径),argv[1]到argv[argc-1]是用户提供的命令行参数。但是,这并不必须是真实的——程序可以使用特定于操作系统的功能来绕过这一要求,而且这种情况经常发生,您应该意识到这一点。(不过,我不确定即使您意识到这一点,您是否可以做很多事情...)例子:gcc

c++ - 将 char* 转换为 std::vector

有没有一种快速的(CPU)方式来转换char数组变成std::vector?我的函数如下所示:voidsomeFunction(char*data,intsize){//NowhereIneedtomakethestd::vector//usingthedataandsize.} 最佳答案 你不能在这里“转换”任何东西,但你可以很容易地从C字符串构造一个vector:std::vectorv(data,data+size);虽然这会创建一个拷贝。 关于c++-将char*转换为std::

c++ - char *p_c = new char ['1' , '2' , '3' , '4' ]; 的含义

考虑char*p_c=newchar['1','2','3','4'];这个语法正确吗?如果是,那么它有什么作用?我不知道为什么,但是编译器允许这种语法!它对内存有什么影响?我无法通过*p_c访问变量。如何确定存在的元素的大小和数量? 最佳答案 你的代码在语法上是有效的C++,虽然有点奇怪,但我认为它没有达到你的预期:newchar['1','2','3','4']被评估为newchar['4']由于方式逗号运算符有效。(前面的元素是从左到右计算的,但表达式的值是最右边元素的值。)所以你的语句等同于char*p_c=newchar[

c++ - 如何将 vector<unsigned char> 转换为 int?

我有vector用二进制数据归档。我需要从vector(2个字节)中取出2个项目并将其转换为整数。这怎么能不使用C风格来完成? 最佳答案 请使用移位运算符/位运算。intt=(v[0]这里提出的所有基于转换/union的解决方案都是AFAIK未定义行为,并且可能会在利用strictaliasing的编译器上失败。(例如GCC)。 关于c++-如何将vector转换为int?,我们在StackOverflow上找到一个类似的问题: https://stackov

c++ - 如何检查 char* p 是否到达 C 字符串的末尾?

templateIntTypeatoi_unsafe(constchar*source){IntTyperesult=IntType();while(source){autot=*source;result*=10;result+=(*source-48);++source;}returnresult;}在main()中我有:char*number="14256";atoi_unsafe(number);但条件while(source)似乎无法识别source已遍历整个C字符串。它应该如何正确检查字符串的结尾? 最佳答案 while

c++ - 如何从 LPWSTR 转换为 'const char*'

在使用C++/CLI将结构从C#转换为C++之后:publicvaluestructSampleObject{LPWSTRa;};我想打印它的实例:printf(sampleObject->a);但是我得到了这个错误:Error1errorC2664:'printf':cannotconvertparameter1from'LPWSTR'to'constchar*'如何将LPWSTR转换为char*?提前致谢。 最佳答案 使用wcstombs()函数,位于.下面是如何使用它:LPWSTRwideStr=L"Somemessage";

c++ - 从 std::string 复制到 char 数组并以 null 终止结果

我有一个VisualStudio2008C++03应用程序,我想在其中从std::string复制到char数组,但我需要char数组以null终止,即使它必须截断字符串才能这样做.例如,这可以按需要工作:inlinevoidCopyAndNullTerminate(conststd::string&source,char*dest,size_tdest_size){source.copy(dest,dest_size);usingstd::min;char*end=dest+min(dest_size-1,source.size());*end='\0';}intmain(){enu

c++ - 有没有一种简单的方法来对 char* 数组进行排序? C++

我在文件中有一个char*数组。我工作的公司将数据存储在平面文件中。有时数据是经过排序的,但有时不是。我想对文件中的数据进行排序。现在我可以从头开始编写代码来执行此操作。有没有更简单的方法?当然,就地排序是最好的选择。我正在处理大文件并且内存很少。但我会考虑所有选择。所有字符串的长度都相同。这是一些示例数据:thedataisoffixedlengththeDataisoffixedlengththISdataisoffixedlengt这将代表三个长度为28的记录。应用知道长度。每条记录都以CRLF(\r\n)结尾,但对于这种类型来说应该无关紧要。 最佳答

c++ - 以char 'e'为输入进行比较

好的,所以我正在做一个书中的练习,将不同类型的货币转换为美元。出于某种原因,当我输入“e”作为char变量的输入并将其与if语句中的“e”进行比较时,比较不起作用,但是如果我将其替换为另一个字母,它将正常工作。这是怎么回事?继承人的代码:intmain(){constdoubleyen_per_dollar=.013;constdoublepound_per_dollar=1.55;constdoubleeuro_per_dollar=1.29;doubleamount=1;charunit='';std::cout>amount>>unit;if(unit=='y')std::cou

c++ - 完全模拟缺失的不同内置类型(特别是 : char16_t and char32_t)

C++11有两种新的字符整型数据类型,char16_t和char32_t。我想为没有不同类型的编译器模拟它们,以便重载I/O操作以将它们视为字符而不是整数值。这些是要求:不同(无typedef)。普通系统上的精确宽度(alauint16_t和uint32_t)允许使用其他C++11功能(见下文第一次尝试)必须善于处理文字;char16_tc16=u"blablaunicodetextblabla";必须有效。如果char16_t可以用于数学运算符,显然这也需要起作用。我在文字部分失败的第一次尝试是强类型枚举:enumchar16_t:uint16_t;这也有其他缺点,也许可以通过自己提