- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 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::string
和 std::getline()
这避免了指定要从输入流中读取的最大字符数(避免固定大小数组的潜在缓冲区溢出问题)。
关于c++ - C++ 中的 strcpy_s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14336659/
我想输出三个国家首字母中最小的字母,这是代码: #include #include using namespace std; int main() { void smallest_string
我在使用 strcpy_s 时遇到一些错误,无法弄清楚我做错了什么。 代码: 播放器.hpp: string name; Player(string); 播放器.cpp: Player::Player
我正在尝试使用 strcpy_s,但我遇到了这个错误: Unhandled Exception... struct Item { //Item's int code; // Code
众所周知,strcpy_s是strcpy的安全版本。 但我想知道它是如何工作的...... 让我们看一些例子。 strpy_s的声明: errno_t strcpy_s(_CHAR *_DEST, s
我有一个 C++11 项目,并且添加了一些 strcpy_s 方法调用。这在windows上可行,但是在gcc上编译时,出现错误指出未找到 strcpy_s 符号。 我确实添加了该行 #define
我只是想将“temp”中的内容复制到“p”中,但程序在 strcopy_s 行崩溃了。我是否遗漏了一些重要的规则? #include #include #include using namesp
我感觉我一直都是用strcpy来复制字符串,没有任何问题,但是我已经很久没用了,现在怎么弄都搞不定。 我确定我遗漏了一些愚蠢的东西,但我对此感到沮丧有一段时间了,所以我来这里看看是否还有其他人可以提供
出于某种原因,一个字符不能进入 strcopy_s();... #include #include using namespace std; struct DATE { int year;
我想知道我是否可以安全地替换此处定义的 strcpy_s https://msdn.microsoft.com/en-us/library/td1esda9.aspx - (有两个参数的)在这里定义了
尝试使用 strcpy_s 复制字符串 char foo[10]; // a buffer able to hold 9 chars (plus the null) char bar[] = "A
我需要将std::string 数据 复制到一个char 数组中。我的字符串的长度是可变的,但我的 char 数组的长度是固定的。 const int SIZE = 5; char name[SIZE
我正在尝试使用更安全的 strcpy_s 更新对 strcpy 的调用。旧函数调用如下所示: char buf[6]; strcpy(buf+1, "%#c"); 为了将上面的代码变成更安全的版本,我
我有一个 C++11 项目,我添加了一些 strcpy_s 方法调用。这适用于Windows,但是在gcc 上编译时,会出现错误声明未找到 strcpy_s 符号。 我确实添加了行 #define _
我是 C++ 新手。我正在编写以下简单代码。我想将字符 [40] 传递给一个函数,然后得到与输出相同的值。如果我在以下位置进行调试。 strcpy_s(x,100,测试仪); 但如果我写“This i
我在 Debian 8 系统上使用 clang。我有标准的 C++ 头文件。然而,没有 header 定义 strcpy_s。这是为什么? # grep -iRHI 'strcpy_s' /usr 2
运行代码后,出现如下错误。如何用 strcpy_s 替换 strcpy?谢谢你的帮助。而且当我尝试直接用 strcpy_s 替换 strcpy 时,它说命名空间“std”没有成员“strcpy_s”。
这个问题在这里已经有了答案: How to find the size of an array (from a pointer pointing to the first element array
我正在尝试使用 VS 2013 在 C++ 中连接两个字符串。下面是代码: char *stringOne = "Hello"; char *stringTwo = " There!"; char *
我的目标是生成一个具有正确数量点的新数组,并将一个旧字符数组复制到其中。 使用strcpy_s时,抛出异常。我不明白为什么会抛出异常,指出缓冲区太小。我不能使用 vector 或字符串。如何使用 st
我在这条线上有缓冲问题 strcpy_s(*(pWords + word_count), word_length, pWord); 我正在尝试从 argv[1] 中读取一个文件并打印出该文件中的每个单
我是一名优秀的程序员,十分优秀!