- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 C 编程语言新手。我用 C++ 做过一些编程,我知道 scanf 用于接受输入, \n
表示下一行,但我无法理解完整的表达式。等效的 C++ 语法是什么?
最佳答案
这意味着“读取所有内容,直到遇到行尾字符,并将结果存储在提供的 char*
指针中”。等效的 C++ 语法完全相同(您需要为此包含 <cstdio>
),但在 C++ 中,您应该更喜欢基于字符串的 API,而不是 scanf
。 :
string buf;
getline(cin, buf);
这样做的原因是scanf
使用您提供的格式字符串很容易出现缓冲区溢出:如果最终用户输入的字符多于 buf
的大小,C或C++会继续将数据写入内存,导致未定义的行为。您可以修复格式字符串(强烈推荐)以将输入限制为缓冲区的大小,如下所示:
char buf[100];
scanf("%99[^\n]", buf);
但现在您只能使用 99 个字符或更少的字符串。 std::getline
与 std::string
另一方面,则不受此限制。
关于c - "scanf("%[^\n ]",buf);"是什么意思?它的等效 C++ 语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26326179/
这是我的代码.. char buf[5000]; bool isHandshaking = false; bool isSingaling = false; while(1) { //----
这个问题在这里已经有了答案: Undefined behavior and sequence points (5 个答案) 关闭 9 年前。 示例代码 int arr[3] = { 0, 1 };
我使用的是 ubuntu 14.04。所以我有最新的内核。我正在尝试返回 libc 方法。 这是我创建环境变量的代码,稍后将其输入到受害者代码 #include #include #include
这个问题在这里已经有了答案: Is it possible to read an empty string from cin and still get true from cin.good()?
package main import ( "fmt" "os" "io" ) func main() { f1,_ := os.Create("f1") io
有什么区别(如果有的话): #define BUF (8) 和 #define BUF 8 我在 C 编程方面不是很有经验,并且从未见过只有 1 个数字的 #define 而不是将其放在括号中。 PS
错误中的代码 int main() { void *ptr = 0; int overrun = 1; ptr = malloc(overrun); while(
是 char buf[] = "test"; 在 C 中相当于 String buf = new String("test"); 在 Java 中? 而且是 char *buf; buf = "tes
在redis中有一个叫做sdahdr的结构: struct sdahdr { int len; int free; char buf[]; } 为什么不使用 char *buf 而不是 sizeof(
我正在阅读一个 C 代码来做 char * buf = malloc(sizeof (char *) * 16) 代替 char buf[sizeof (char *) * 16] 有什么区别?好吧,
我想在我的 iPhone 上获取 tcp 连接列表。我在 上得到了以下代码 How to get tcp/udp opening port list on iphone by objective-c?
我正在尝试在 visual studio 2010 中使用 opencv 和 curl 从 url 加载图像。运行代码时出现上述错误。该错误是什么意思?如何更正我的代码。这是我的代码 #include
我正在尝试了解 linux 内核中的 dma buf 框架并阅读这篇文章 http://lwn.net/Articles/489703/上面写着 用户空间实体请求一个文件描述符(fd),它是 与缓冲区
我在将原始视频数据写入 AVFrame 时遇到段错误和/或超出范围的内存写入,因此无法使用 ffmpeg 库对视频进行编码。因此,我只想问我的一个假设是否正确。 我是否正确假设 AVFrame.dat
我在 Buf 中有一大块内存我想传递给 C 库,但该库将使用超出单个调用生命周期的内存。 我知道这可能会有问题,因为垃圾收集器可以移动内存。 用于传递 Str , Nativecall docs 说“
我正在尝试包装 read函数来自 unistd.h ,但无法让它工作。 这是我所拥有的:(在文件中:read.raku) use NativeCall; # ssize_t read(int fd,
作为引用,我使用以下代码: #include #include int main (void) { char buf[100]; // ------> How do I find the
这是一个非常简单的问题,我找不到答案。我在 sqlplus (Oracle) 中,我打错了字,输入了“edit”,打开了“afiedt.buf”,据我所知,这将打开我的默认编辑器“vi”。进入编辑器后
我有一个使用 confluence.io kafka 包的带有 avro 消息的 kafka 流。这对于 java 应用程序来说工作得很好。但我现在正在尝试用 JavaScript 读取这些消息。 我
我是编程新手,我有一个关于 C 中的静态变量的项目。我看到我们可以像这样声明一个静态变量: static char *buf = NULL 最后加“=NULL”有什么作用? 最佳答案 在 st
我是一名优秀的程序员,十分优秀!