stdio相关内容

查找所有子字符串的匹配项和位置

我正在编写一个程序来解析一些保存为文本文件的数据。我要做的就是在大海捞针的地方找到每一根针的位置。我已经可以读取文件并确定出现的次数,但我还希望找到索引。 推荐答案 string str,sub; // str is string to search, sub is the substring to search for vector positions; // hold ..
发布时间:2022-09-05 16:23:07 C/C++开发

Snprint tf(空,0,...);行为是否标准化?

在Linux上,它返回要打印的字符数。 这是标准化行为吗? 推荐答案 是。 从7.21.6.5开始,n1570(C11草稿): Snprintf函数等同于fprint tf,只是输出 被写入数组(由参数s指定的fi),而不是写入 小溪。如果n为零,则不写入任何内容,并且s可能为空 指针。否则,第n-1个以外的输出字符为 丢弃而不是写入数组,并且为空字符 被写在实际写入 ..
发布时间:2022-04-20 11:01:30 其他开发

使用标准C库将文件读取到内存-Windows过早识别EOF,但可以在Mac、Linux上运行

这感觉像是最愚蠢的问题,但希望有人能帮上忙。很抱歉这篇帖子太长了,但我想提供足够的细节,这样人们就不会建议我已经尝试过的东西。 我已经隔离了我编写的一个C程序的问题,该程序应该在Mac、Linux和Windows上提供。该程序无法在Windows上运行,但在Mac和Linux上正常运行,并且在最近的更改之前曾在Windows上运行。 失败的直接原因与将文件读入内存挡路有关-所以我将该代 ..
发布时间:2022-03-02 20:09:42 其他开发

Java + Eclipse:同步标准输出和标准错误

我使用 Eclipse.当我有这样的应用程序时: 向标准输出写入 20 次 'Hello World\n'将 'ERROR\n' 写入标准错误向标准输出写入 5 次 'Hello World\n' 输出多次看起来像这样: Hello World你好世界你好世界你好世界你好世界你好世界...你好世界你好世界你好世界错误 有没有办法同步这两个输出流?当然不需要在 20 次 Hello Worl ..
发布时间:2022-01-22 20:30:30 Java开发

标准输入的非阻塞读取?

我需要让基于表单的应用程序定期检查标准输入以获取输入,但仍执行其他处理.Scripting.TextStream.Read() 和 ReadFile() API 是阻塞的,VB6 有没有非阻塞读取标准输入的方法? Timer1 设置为每 100 毫秒触发一次,我尝试过: Private Declare Function AllocConsole Lib "kernel32" () As L ..
发布时间:2022-01-20 19:32:14 其他开发

在 C 中尝试和真正简单的文件复制代码?

这看起来像一个简单的问题,但我在这里没有找到类似的东西. 由于C中没有文件复制功能,所以我们必须自己实现文件复制,但我不喜欢为这种琐碎的事情重新发明轮子,所以我想问问云: 对于使用 fopen()/fread()/fwrite() 进行文件复制,您会推荐什么代码? 对于使用 open()/read()/write() 进行文件复制,您会推荐什么代码? 此代码应该是可移植的(wi ..
发布时间:2022-01-20 17:49:20 其他开发

无法打开包含文件:'stdio.h' - Visual Studio Community 2017 - C++ 错误

我正在尝试在 Visual Studio Community 2017 上构建解决方案,但我不断收到错误消息“无法打开包含文件:'stdio.h'". 我已经阅读了几个类似的问题,但我仍然无法解决这个问题.看起来 stdio.h 文件在 stdafx.h 文件中被调用.以下是更多细节.有什么建议吗? 系统详情: Windows 10 Visual Studio 社区 2017 ..
发布时间:2022-01-11 23:56:06 C/C++开发

CreateProcess 带有新的控制台窗口,但会覆盖一些 std i/o 句柄

如果您使用带有标志 CREATE_NEW_CONSOLE 的 CreateProcess,则新进程的标准输入、输出和错误句柄将定向到新的控制台窗口.如果要覆盖 I/O 流,可以通过在 STARTUPINFO 字段 hStdOutput、hStdInput 和 hStdError 中设置句柄并设置标志 STARTF_USESTDHANDLES 来实现. 但是,如果您只想覆盖其中一个句柄怎么办? ..
发布时间:2022-01-11 09:02:05 C/C++开发

使用 NDK 捕获 stdout/stderr

我正在移植一些现有的 C 代码以在 Android 上运行.此 C 代码将大量输出写入 stdout/stderr.我需要在内存缓冲区或文件中捕获此输出,然后我可以通过电子邮件发送或以其他方式共享它. 我怎样才能做到这一点,最好不修改现有的 C 代码? 注意:这个问题不是关于将输出重定向到 adb 或 logcat;我需要在设备上本地缓冲输出.我知道以下问题似乎无法解决我的问题: ..
发布时间:2022-01-10 23:22:27 移动开发

使用 setvbuf() 禁用 stdin 和 stdout 的缓冲

当我阅读有关 setvbuf() 的用法时,我遇到了 _IONBF(无缓冲)模式.所以我很好奇如果我尝试禁用缓冲会如何影响 stdin 和 stdout.下面是一个示例代码: 代码: #include int main(void){整数;字符一个;setvbuf(stdin, NULL, _IONBF, 0);//关闭缓冲scanf("%d", &num);a = getchar(); ..
发布时间:2022-01-07 20:26:02 其他开发

C 中的字符串流

print2fp(const void *buffer, size_t size, FILE *stream) {if(fwrite(buffer, 1, size, stream) != size)返回-1;返回0;} 如何将数据写入字符串流而不是文件流? 解决方案 posix 2008 标准中有一个非常简洁的函数:open_memstream().你像这样使用它: char* bu ..
发布时间:2022-01-07 20:08:17 其他开发

如何在 C 中刷新输入流?

我无法在这里刷新 stdin,有没有办法刷新它?如果不是,那么如何让 getchar() 将一个字符作为用户的输入,而不是输入缓冲区中 scanf() 留下的“\n"?? #include "stdio.h"#include "stdlib.h"int main(int argc,char*argv[]) {文件 *fp;字符另一个='y';结构体{字符名称[40];年龄;浮动 bs;};结构体 ..
发布时间:2022-01-04 08:12:38 其他开发

C 中的 stdlib 和彩色输出

我正在制作一个需要彩色输出的简单应用程序.如何让我的输出像 emacs 和 bash 一样着色? 我不关心 Windows,因为我的应用程序仅适用于 UNIX 系统. 解决方案 所有现代终端模拟器都使用 ANSI 转义码来显示颜色和其他内容. 不用担心库,代码很简单. 更多信息在这里. C 中的示例: #include #define ANSI_COLOR_RED " ..
发布时间:2021-12-29 22:19:42 其他开发

ftell 在超过 2GB 的位置

在 32 位系统上,如果以二进制模式打开的文件的当前位置指示器超过 2GB 点,ftell 返回什么?在 C99 标准中,这是 未定义的行为,因为 ftell 必须返回一个 long int(最大值为 2**31-1)? 解决方案 on long int long int 应该是至少 32 位,但 C99 标准并没有将其限制为 32 位.C99 标准确实提供了方便的类型,例如 int ..
发布时间:2021-12-29 12:39:23 其他开发

在 C 中尝试过真正的简单文件复制代码?

这看起来是一个简单的问题,但我在这里没有找到类似的问题. 由于C中没有文件复制功能,我们必须自己实现文件复制,但我也不喜欢重新发明轮子,即使是像那种琐碎的事情,所以我想问一下云: 您推荐使用 fopen()/fread()/fwrite() 进行文件复制的代码是什么? 您建议使用 open()/read()/write() 复制文件的代码是什么? 此代码应该是可移植的(wind ..
发布时间:2021-12-29 12:38:17 其他开发

无法使用 fopen() 打开文件

我一直在尝试打开一个文件并输出文本,但我一直收到错误消息.所以我想我会从一开始就尝试打开文件.这是我的代码: #include #include #define CORRECT_PARAMETERS 3int main(void){文件 *文件;file = fopen("TestFile1.txt", "r");如果(文件== NULL){printf("错误");}fclose(文件);} ..
发布时间:2021-12-29 12:26:58 其他开发

格式字符串中的空格 (scanf)

考虑以下代码: #includeint main() {int i=3, j=4;scanf("%d c %d",&i,&j);printf("%d %d",i,j);返回0;} 如果我必须更改变量的值,如果我将 2c3 或 2 c 3 或 2c 3 作为输入,它会起作用.如果我希望用户输入与我想要的相同的模式,我该怎么做意味着如果 %dc%d 那么只有 2c3 是可接受的,而不是 2 c 3 ..
发布时间:2021-12-21 17:44:14 其他开发

GCC 致命错误:stdio.h:没有这样的文件或目录

我正在尝试使用 GCC 4.9(实验性)在 OS X 10.9 上用 C 编译程序.出于某种原因,我在编译时收到以下错误: gcc:致命错误:stdio.h:没有那个文件或目录 然后我尝试了一个简单的 Hello World 程序: #include int main(int argc, const char *argv[]){printf(“你好,世界!");返回0;} 同样,在运行 g ..
发布时间:2021-12-18 23:05:24 其他开发

Win32 - 从标准输入读取超时

我正在尝试做一些我认为应该很简单的事情:从标准输入进行阻塞读取,但如果没有数据可用,则在指定的时间间隔后超时. 在 Unix 世界中,使用 select() 会很简单,但这在 Windows 中不起作用,因为 stdin 不是套接字.在不创建额外线程等的情况下,下一个最简单的选择是什么? 我使用的是面向 Win32 环境的 Visual C++. 到目前为止我已经尝试过: ..
发布时间:2021-12-18 08:10:33 C/C++开发