c++中的可视化strcpy_s
visual strcpy_s in c++
我是c++新手。我正在编写以下简单的代码。我想把字符[40]传递给一个函数,然后得到与输出相同的结果。如果我把一个调试在以下点。strcpy_s (x, 100,测试人员),
但它只需要"This",如果我写"This is sent at output"。谁能指出我错过了什么,为什么只接受几个字符。
// 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::string
和std::getline()
,避免指定从输入流读取的最大字符数(避免固定大小数组的潜在缓冲区溢出问题)。
将std::cin >> m;
更改为cin.getline(m, 39);
cin >> x
在输入中有空格(空格,制表符,…)时才获取所有行字符。
由于您使用的是c++,所以最好使用std::string
类而不是旧的C风格字符串
std::cin>>m
可能由于某种原因在空格上打断了字符串。使用调试器中断并检查m
的内容。如果只有this
,您就发现问题了。
相关文章:
- 可视化 如何在 c++ 中制作特定大小的文件?
- 可视化C++:发布模式的运行时库作为'Multi-threaded Debug DLL'
- 提升如何在图形可视化中写入边缘的权重?
- 如何在大型c++项目的可视化代码中设置调试
- 可视化编译与 C++ 中的 Extern 变量
- 可视化 Bazel C++预编译标头实现
- 无法为 X.radio 创建中等可视化,因为找不到网络节点可视化 - Omnet++
- C++合并排序可视化工具
- 可视化 使用 VS Code 查找C++应用程序中的内存泄漏
- 可视化 将字符串解析为数组以进行C++
- 可视化 如何在C++中将字符数组转换为 FILE 类型
- 可视化C++载体:未使用的容量
- 可视化 如何在 c++ 中截断
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- OpenCV 中大量可视化::Widget3D 的性能不佳
- GCC、CLANG 和 MSVC 的可视化C++自动矢量化要求
- 如何在可视化代码中生成用于 c++ 开发的调试器?
- 可视化 如何修复 c++ 中已经定义的 -main?
- 可视化C++外部定义内联函数
- 输出窗口中消息的可视化工作室源