gpt4 book ai didi

c - 在我输入 exit 之前程序不会打印结果

转载 作者:行者123 更新时间:2023-12-04 12:30:30 26 4
gpt4 key购买 nike

我最近开始学习 C,因为我在大学开始了一门类(class)。在我的一课中,我需要编写一个程序,将毫秒数转换为天、小时、分钟、秒和毫秒。我使用这个源代码:

#include <stdio.h>

int main ()
{
long int time_ms;
int d, h, m, s, ms;
printf("insert the value in ms: \n");
scanf("%ld\n", &time_ms);

d = time_ms/(24*60*60*1000); //ms in a day
time_ms = time_ms%(24*60*60*1000); //reminder in ms

h = time_ms/(60*60*1000);
time_ms = time_ms%(60*60*1000);

m = time_ms/(60*1000);
time_ms = time_ms%(60*1000);

s = (time_ms/1000);
ms = time_ms%1000;

printf("%d d %d h %d m %d s %d ms\n",
d, h, m, s, ms);
}

我编译了它,它工作了,但是在我插入毫秒数后,MacOs 的 shell(我正在工作)不会打印任何内容,直到我输入“exit”。我做错了什么?

最佳答案

这是你的问题:

scanf("%ld\n", &time_ms);

您的序列中有一个 \n。这意味着输入数字并按 Enter 键后,scanf 会读取该数字,然后读取换行符,然后在返回之前等待非换行符的内容。

从格式字符串中删除换行符:

scanf("%ld", &time_ms);

关于c - 在我输入 exit 之前程序不会打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49319615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com