首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道下一次调用printf()是否会超出屏幕大小

如何知道下一次调用printf()是否会超出屏幕大小
EN

Stack Overflow用户
提问于 2020-05-29 19:34:40
回答 2查看 85关注 0票数 0

我正在用C语言编写一个程序,我的问题非常简单:如何知道下一次对printf()的调用是否会超过屏幕尺寸?

也就是说,有时当您使用打印时,文本可能无法显示在一个屏幕中。例如,我有4-5个字符串要打印,我想创建一个打印整个文本的函数,或者打印到文本由于屏幕尺寸而被切断为止。

EN

回答 2

Stack Overflow用户

发布于 2020-05-29 19:52:26

您可以使用snprintf写入字符串缓冲区,然后将此缓冲区写入实际的控制台输出。由于您似乎无法控制想要写入的字符数,因此我建议使用int snprintf( char* buffer, std::size_t buf_size, const char* format, ... )。它允许您限制要写入的字符数,以避免缓冲区溢出:

代码语言:javascript
复制
char buffer[80+1];  // maximum length of a complete line.
snprintf(buffer, sizeof(buffer), "my output: %d, %s", someInt, someString);
if (strlen(buffer) >= nrOfCharsLeftInLine) {
   buffer[nrOfCharsLeftInLine] = 0x0;
}
printf("%s",buffer);
票数 1
EN

Stack Overflow用户

发布于 2020-06-16 18:48:13

根据How do you clear the console screen in C?的说法,"C不理解屏幕的概念,所以任何代码都不能移植“。因此,为了使我的问题更具体,我正在寻找一种在UNIX环境中执行上述操作的方法。

我重新表述我的问题:

有时当您使用打印时,文本可能无法显示在一个屏幕中。例如,我有4-5个字符串要打印,我想创建一个函数来打印,直到文本被切断,因为它不能适应可用的屏幕尺寸。

我希望存在一个( UNIX系统的)系统函数,它在显示器向下滚动以“跟随”打印输出时触发。也就是说,当有人继续在终端中打印时,终端会自动向下滚动,以便您可以监控打印输出。这样的事情真的存在吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62085039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档