gpt4 book ai didi

c - 如何通过 Windows 批处理文件将值传递给 scanf()

转载 作者:行者123 更新时间:2023-11-30 16:11:50 25 4
gpt4 key购买 nike

我想快速对学生的 HW 进行评分,因此我决定为此编写一个批处理脚本。我知道在 Ubuntu 中更容易做到这一点,但由于学生需要在 Windows 中编码他们的硬件,所以我也必须在 Windows 中评估它们。好吧,到目前为止,我编写了以下批处理文件,但它不采用 char 变量。

请注意,硬件的目的是绘制一个矩形并用键盘给出的字符填充它(scanf)

@echo off
set file=%1
gcc %file% -o %file%.exe
REM Followings are "row col fill" respectively
echo 6 10 A | %file%.exe :: #1
echo 6 6 | %file%.exe :: #2
move %file% graded\
move %file%.exe graded\

这里,在 #1 和 #2 处,它都绘制了带有空格的矩形,但在 #1 处,它应该用 A 填充它。

如果我的学生可以在网上找到这个问题,我无法将整个解决方案放在这里,但我可以显示 scanf() char 部分:

//take num_of_rows and num_of columns
....
printf("\nFilling char?: ");
fflush(stdin);
scanf("%c",&fill);
...
//draw rectangle

最后,这是所需的输出:

TEST-1
Enter number of rows (between 3-20) : 5
Enter number of columns (between 3-80) : 40
Enter a filling character (one char) : #
+--------------------------------------+
|######################################|
|######################################|
|######################################|
+--------------------------------------+
TEST-2
Enter number of rows (between 3-20) : 8
Enter number of columns (between 3-80) : 25
Enter a filling character (one char) : (blank)
+-----------------------+
| |
| |
| |
| |
| |
| |
+-----------------------+

警告:请不要放置 C 代码的完整解决方案,因为它是硬件。

最佳答案

由于我这里没有正在运行的 Windows,并且不知道作业的其余解决方案是什么样子,因此这可能有效,也可能无效。 fflush(stdin) 可能只清除当前输入,而不是完整的输入。

您(在评论中)说过您的示例解决方案无需批处理即可工作。

然后您可能想尝试将输入放入输入文件的单独行中,该文件将被输入到作业程序中:

echo.6>   input.txt
echo.10>> input.txt
echo.A>> input.txt
%file%.exe < input.txt

echo.6> input.txt
echo.6>> input.txt
echo. >> input.txt
%file%.exe < input.txt

echo 命令必须与所示的字面意思相同,当然您会改变行、列和填充字符。

一些注意事项:

  • echo 后的点使其认为已给出参数。特别是在显示的最后一个命令中,否则它只会输出“Echo is ON”(或 OFF)。

  • 如果您不希望在数字后面输入空格,则行/列数字后面不应有空格。

  • 在相应的第三个命令中,echo.>> input.txt 之间只有一个字符。这是填充字符“A”和空格。

  • 您可以省略 >> 和文件名 input.txt 之间的空格。这只是为了清楚起见。

  • 以防万一您不知道:> 在写入输出文件之前清除它; >> 将附加到它。

关于c - 如何通过 Windows 批处理文件将值传递给 scanf(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58486262/

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