gpt4 book ai didi

c++ - C++ 中的 strcpy_s

转载 作者:太空狗 更新时间:2023-10-29 23:30:46 27 4
gpt4 key购买 nike

我是 C++ 新手。我正在编写以下简单代码。我想将字符 [40] 传递给一个函数,然后得到与输出相同的值。如果我在以下位置进行调试。 strcpy_s(x,100,测试仪);

但如果我写“This is sent at the output”,它只需要“This”。任何人都可以指出我错过了什么以及只接受几个字符的原因是什么。

// BUSTesting.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "resource.h"

int testFunction(char* tester);
int _tmain()
{

char m[40];
std::cin>>m;
testFunction(m);
}
int testFunction(char* tester)
{

char x[100] ;
memset(x,100,sizeof(x));
strcpy_s(x,100,tester);
std::cout<<x;
return 0;
}

最佳答案

operator>>将在第一个空白字符处停止消耗输入。另一种方法是使用 cin.getline()以防止由于空格而导致的输入处理。

注意初始化一个数组,避免memset():

char x[100] = "";

推荐std::stringstd::getline()这避免了指定要从输入流中读取的最大字符数(避免固定大小数组的潜在缓冲区溢出问题)。

关于c++ - C++ 中的 strcpy_s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14336659/

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