首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C语言中控制台的用户输入

C语言中控制台的用户输入
EN

Stack Overflow用户
提问于 2012-08-21 19:17:41
回答 2查看 6.8K关注 0票数 1

我是一个完全的C编程初学者,所以请对我有一点耐心。我正在尝试在控制台中输入用户的文件名,并且我想打印一条有用的消息,提示用户输入他想要打开的文件名。但是当我在命令提示符下运行这个命令时,光标首先等待输入,在我输入一些文本并按回车键之后,我看到了我想要在输入之前打印的有用提示。下面是代码片段。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 char filename[40];
 fputs("enter the file name: ", stdout);
 fflush(stdout); 
 fgets(filename, sizeof(filename), stdin);

我看不出我在哪里做错了。如果有人能解释一下为什么会这样,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-21 20:06:11

我看不出你粘贴的代码有任何问题,和gcc一起工作很好。这一定与stdout没有被刷新有关,这可能特定于您正在使用的编译器……

票数 1
EN

Stack Overflow用户

发布于 2012-08-21 20:27:37

这对我的gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)很有效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
char path[100];

printf("Give a path: ");

// Max length of 99 characters; puts a null terminated string in path, thus 99 chars + null is the max
scanf("%99s", path);

printf("This is your path: %s\n", path);

在*nix机器上,在汇编中,读写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read:   mov $0x03, %rax # Syscall Read
        mov $0x00, %rbx # Stdin
        mov $Buff, %rcx # Address to read to
        mov $BuffLen, %rdx  # Bytes to read
        int $0x80           # Call

write:  mov $0x04, %rax # Syscall Write
        mov $0x01, %rbx # Stdout
        mov $Buff, %rcx # Address to write from
        mov $BuffLen, %rdx  # Bytes to write
        int $0x80           # Call

这是我从老师那里得到的一些Windows程序集:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.386
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

GetStdHandle PROTO NEAR32 stdcall, nStdHandle:DWORD

ReadFile PROTO NEAR32 stdcall, hFile:DWORD, lpBuffer:NEAR32, NumberOfCharsToRead:DWORD,
     lpNumberOfBytesRead:NEAR32, lpOverlapped:NEAR32

WriteFile PROTO NEAR32 stdcall, hFile:DWORD, lpBuffer:NEAR32, NumberOfCharsToWrite:DWORD,
     lpNumberOfBytesWritten:NEAR32, lpOverlapped:NEAR32

STD_INPUT  EQU -10
STD_OUTPUT EQU -11

cr  EQU 0dh
Lf  EQU 0ah

.STACK
.DATA

InMsg   BYTE    14 dup (?)
msgLng  DWORD   $ - InMsg ;
read    DWORD   ?
written DWORD   ?
hStdIn  DWORD   ?
hStdOut DWORD   ?

.CODE
_start:
        INVOKE GetStdHandle, STD_INPUT
        mov     hStdIn, eax
        INVOKE ReadFile, hStdIn, NEAR32 PTR InMsg, msgLng, NEAR32 PTR read, 0
    INVOKE GetStdHandle, STD_OUTPUT
    mov hStdOut, eax
        INVOKE WriteFile, hStdOut, NEAR32 PTR InMsg, msgLng, NEAR32 PTR written, 0
    INVOKE ExitProcess, 0

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

https://stackoverflow.com/questions/12061553

复制
相关文章
在IIS上部署 .Net Core服务
如果你有兴趣做 .Net Core的开发,并且还具备一定C#的知识,那么可以看微软提供的文档
零式的天空
2022/03/24
1K0
在IIS上部署 .Net Core服务
使用 IIS 在 Windows 上部署 Python Web 应用
虽然 Linux 受到了绝大多数互联网公司的青睐,但是 Windows 服务器在中小企业的服务器选择中依然还是首选。
州的先生
2021/09/29
4.7K0
IIS 部署 python web框架
IIS的安装就不说了吧,然后运行:inetmgr ,打开iis管理器,打开 Web平台安装程序,(如果没有,百度下载安装一下吧),然后是安装--IIS:CGI 这个包。
py3study
2020/01/08
1.9K0
IIS 部署 python web框架
分享在IIS6上开启https服务的方法
  前两天因为需要修正一个Windows Live Contacts Gadget在https连接下无法工作的错误,在dev machine的IIS上设置了一下SSL功能。
会长君
2023/04/26
1.2K0
用IIS建立高安全性Web服务器的方法
要创建一个安全可靠的Web服务器,必须要实现Windows 2000和IIS的双重安全,因为IIS的用户同时也是Windows 2000的用户,并且IIS目录的权限依赖Windows的NTFS文件系统的权限控制,所以保护IIS安全的第一步就是确保Windows 2000操作系统的安全:
会长君
2023/04/26
1.1K0
机器学习在web攻击检测中的应用实践
一、背景 通俗地讲,任何一个的机器学习问题都可以等价于一个寻找合适变换函数的问题。例如语音识别,就是在求取合适的变换函数,将输入的一维时序语音信号变换到语义空间;而近来引发全民关注的围棋人工智能AlphaGo则是将输入的二维布局图像变换到决策空间以决定下一步的最优走法;相应的,人脸识别也是在求取合适的变换函数,将输入的二维人脸图像变换到特征空间,从而唯一确定对应人的身份。 在web应用攻击检测的发展历史中,到目前为止,基本是依赖于规则的黑名单检测机制,无论是web应用防火墙或ids等等,主要依赖于检测引擎内
两只橙
2018/04/27
1.7K2
机器学习在web攻击检测中的应用实践
机器学习在web攻击检测中的应用实践
来源 | 携程技术中心 作者 | 岳良 背景 通俗地讲,任何一个的机器学习问题都可以等价于一个寻找合适变换函数的问题。例如语音识别,就是在求取合适的变换函数,将输入的一维时序语音信号变换到语义空间;而近来引发全民关注的围棋人工智能AlphaGo则是将输入的二维布局图像变换到决策空间以决定下一步的最优走法;相应的,人脸识别也是在求取合适的变换函数,将输入的二维人脸图像变换到特征空间,从而唯一确定对应人的身份。 在web应用攻击检测的发展历史中,到目前为止,基本是依赖于规则的黑名单检测机制,无论是web
用户1737318
2018/06/05
7420
在IIS上部署.Net Core
最近在研究一个.Net Core的新框架功能基本明白,也可以随心所欲地进行功能应用的构建;当然熟悉的程度与MVC的开发还有些距离;不过跟时间做朋友,慢慢进行积累和学习。。现在就分享一下如果在IIS上对.Net Core的应用进行发布吧。
谭广健
2021/03/03
1.5K0
机器学习在web攻击检测中的应用实践
作者简介 岳良, 携程信息安全部高级安全工程师。2015年加入携程,主要负责渗透测试,安全评审,安全产品设计。 一、背景 在web应用攻击检测的发展历史中,到目前为止,基本是依赖于规则的黑名单检测机制,无论是web应用防火墙或ids等等,主要依赖于检测引擎内置的正则,进行报文的匹配。虽说能够抵御绝大部分的攻击,但我们认为其存在以下几个问题: 1. 规则库维护困难,人员交接工作,甚至时间一长,原作者都很难理解当初写的规则,一旦有误报发生,上线修改都很困难。 2. 规则写的太宽泛易误杀,写的太细易绕过。 例
企鹅号小编
2018/01/09
2.2K0
机器学习在web攻击检测中的应用实践
在IIS中部署SPA应用,多么痛的领悟!
目前公司的Web项目是SPA应用,采用前后端分离开发,所以有时也会倒腾Vue框架。
有态度的马甲
2020/11/09
1.2K0
在IIS中部署SPA应用,多么痛的领悟!
干货 | 机器学习在web攻击检测中的应用实践
一、背景 在web应用攻击检测的发展历史中,到目前为止,基本是依赖于规则的黑名单检测机制,无论是web应用防火墙或ids等等,主要依赖于检测引擎内置的正则,进行报文的匹配。虽说能够抵御绝大部分的攻击,但我们认为其存在以下几个问题: 1. 规则库维护困难,人员交接工作,甚至时间一长,原作者都很难理解当初写的规则,一旦有误报发生,上线修改都很困难。 2. 规则写的太宽泛易误杀,写的太细易绕过。 例如一条检测sql注入的正则语句如下: Stringinj_str = "'|and|exec|insert|sel
CSDN技术头条
2018/02/06
8680
干货 | 机器学习在web攻击检测中的应用实践
Docker在Uber服务部署中的应用
无论你如何理解政治,毫无疑问UBER就是创新的代名词,正如它颠覆了传统的交通运输行业在这个分享体系中的领导地位。但是问题在于最快的创新者往往会遇到一些问题,正如微软、苹果、亚马逊都曾经遇到过一样。问题在于一旦你开始创新并且旗开得胜,你的进度会快到你自己都无法跟上,以至于有时会迷失对于大局的掌控,从而不得不暂缓进度边走边建设。 这就是Casper S. Jensen今年初作为软件工程师刚刚加入UBER计算机平台部门时候发现的故事。 在Docker欧洲会议的第一天,Jensen开始他的演讲即是关于UBER如何保
CSDN技术头条
2018/02/11
8810
Docker在Uber服务部署中的应用
干货 | 机器学习在web攻击检测中的应用实践
作者简介 岳良, 携程信息安全部高级安全工程师。2015年加入携程,主要负责渗透测试,安全评审,安全产品设计。 一、背景 在web应用攻击检测的发展历史中,到目前为止,基本是依赖于规则的黑名单检测机制,无论是web应用防火墙或ids等等,主要依赖于检测引擎内置的正则,进行报文的匹配。虽说能够抵御绝大部分的攻击,但我们认为其存在以下几个问题: 1. 规则库维护困难,人员交接工作,甚至时间一长,原作者都很难理解当初写的规则,一旦有误报发生,上线修改都很困难。 2. 规则写的太宽泛易误杀,写的太细易绕过。 例如
携程技术
2018/03/16
8390
干货 | 机器学习在web攻击检测中的应用实践
干货 | 机器学习在web攻击检测中的应用实践
岳良, 携程信息安全部高级安全工程师。2015年加入携程,主要负责渗透测试,安全评审,安全产品设计。 一、背景 在web应用攻击检测的发展历史中,到目前为止,基本是依赖于规则的黑名单检测机制,无论是web应用防火墙或ids等等,主要依赖于检测引擎内置的正则,进行报文的匹配。虽说能够抵御绝大部分的攻击,但我们认为其存在以下几个问题: 1. 规则库维护困难,人员交接工作,甚至时间一长,原作者都很难理解当初写的规则,一旦有误报发生,上线修改都很困难。 2. 规则写的太宽泛易误杀,写的太细易绕过。 例如一条检
IT派
2018/03/28
1.2K0
干货 | 机器学习在web攻击检测中的应用实践
Postgresql中检测内存越界或use after free的简便方法
在Postgresql的内存管理模块中,最常用的aset.c提供的内存池实现,该实现提供了两个非常实用的开关来解决常见的内存越界问题:
mingjie
2023/10/13
2510
Postgresql中检测内存越界或use after free的简便方法
在IIS中部署.net core应用
对于熟悉IIS的程序员来说,将 .NET Core Web应用部署在IIS中,无疑是方便统一管理的事情。网上给出很多如何在IIS中部署 .NET Core 应用的介绍,多是基于旧版本来说的,对于2.1以后的版本,我们只需要做到两步即可完成。
拓荒者IT
2019/09/24
8150
在IIS上部署ASPNETMVC Beta网站[通俗易懂]
在IIS上部署ASPNETMVC Beta网站,实际上和在IIS上部署其他类型的网站并没有太大的区别。个人觉得唯一比较有意思的是在配置IIS时,我们可以配置各种自定义的ISAPI扩展名(也在MVC应用配置的,通常在Global.asax中)
全栈程序员站长
2022/11/10
2.1K0
在IIS上部署ASPNETMVC Beta网站[通俗易懂]
WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法
本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html
跟着阿笨一起玩NET
2018/09/18
1.5K0
WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法
wildfly 21中应用程序的部署
除了配置文件的修改之外,最重要的就是应用程序的部署了。本文将会讲解如何在wildfly 21中,在Managed Domain和standalone两种模式中如何部署应用程序。
程序那些事
2020/12/31
1.5K0
在idea中创建web项目_idea部署web项目
这个时候给项目命名,我在这里命名为java_web,下面那个可以更改项目存放的路径,我这里放到自定的路径,点击Finish。
全栈程序员站长
2022/08/02
1.6K0
在idea中创建web项目_idea部署web项目

相似问题

IIS中的Web服务部署?

44

在IIS上部署WCF web服务

11

在webconfig或部署中隐藏web方法服务

13

在IIS下部署Web应用程序

14

部署Web服务,如Web应用程序或Servlet

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文