- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 D 程序时遇到了一个非常奇怪的问题。 read("%s", variable) 本身工作正常,readln(variable) 本身工作正常,但是当我将两者放在一起时,readln() 似乎被忽略了。同时使用 gdc 和 dmd 时发生错误。
import std.stdio;
import std.string;
void main()
{
int x;
write("Enter a number: ");
readf(" %s", &x);
write("What is your name? ");
string name=chomp(readln());
writeln("Hello ", name, "!");
}
输出:
Enter a number: 5
What is your name? Hello !
但是,如果我注释掉 readf("%s", &x),readln 将如我所愿地被调用:
Enter a number: What is your name? hjl
Hello hjl!
最佳答案
这也是 C 的 readf 和 scanf 函数的常见错误。 readf 对格式字符串和空格非常准确。有了你的字符串,它会读取值,然后在它看到的第一个空格处停止......这恰好是换行符。
如果你要这样做:
Enter a number: 123 bill
它会打印What is your name?你好,bill!
因为它停在空格处,然后 readln 拾起它直到行尾。
如果您执行 123,按回车键,然后输入您的姓名,readf 会在换行符处停止...然后 readln 会拾取一个空行。
最简单的解决方法是告诉 readf 也使用换行符:
readf(" %s\n", &x);
然后 readln 将从一个空缓冲区开始,并能够获取它需要获取的内容。
关于D lang - 在同一程序中使用 read 和 readln(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900467/
印地问题。 我在 TIdTCPClient ReadLn 调用中添加了一个超时参数,以便我的线程可以经常检查是否终止。但是,如果发生超时,从那时起我将永远不会从 ReadLn 获取任何数据。如何重置
使用 Delphi 2010 和 Indy10 我正在尝试从 Delphi 读取服务器发送的事件。我已经成功创建了一个线程,它将订阅我的服务器(Python/Flask)上的连接并捕获事件。需要一个线
Haskell 中是否有像 Pascal 中的 ReadLn 那样的内置函数? 我想要这样的东西: λ> pascalReadLn :: IO (Int, Int, Int, Int) 1 2 3 4
此功能允许用户输入字符串列表。该函数采用长度并允许用户输入长度为 1 的更多行。然后检查每一行以确保它与原始行的长度相同。编码: readme :: IO [Line] readme = do li
我想在 IdTcpServer 上的 Indy10 中使用 AContext.Connection.IOHandler.ReadLn 但我不知道如何使用 ByteEncoding 参数。客户端是否必须
我想逐行处理文本文件。过去,我将文件加载到 StringList 中: slFile := TStringList.Create(); slFile.LoadFromFile(filename); f
当我运行以下代码时,没有出现运行时错误: printReverse :: IO () printReverse = do line IO a 和 getLine :: IO String r
我必须使用java与服务器发送和接收一些流。协议(protocol)是 telnet,如果我在 Windows 中使用 cmd 并执行以下命令:"telnet 10.0.1.5 9100" 并在 "^
我最近安装了 Leksah(Windows 7 64 位上的 0.10.0.4),这对于 Haskell 来说似乎是一个有趣的 IDE。但是,在使用程序时,当涉及到用户对程序的输入时,我显然忽略了一些
当使用 Delphi 的 ReadLn 将制表符分隔文件中的值读取到一系列变量中时,为什么当我单步执行调试器时某些变量没有被分配到适当的值? 即 x, y, z: Integer; ... ReadL
我的客户应用程序使用 writeln 和 readln 通过文本文件导出和导入相当多的 real 类型的变量。我尝试增加写入字段的宽度,因此代码如下所示: writeln(file, exportRe
我在使用 D 程序时遇到了一个非常奇怪的问题。 read("%s", variable) 本身工作正常,readln(variable) 本身工作正常,但是当我将两者放在一起时,readln() 似乎
当我尝试在 Delphi XE7 控制台应用程序中显示 UTF 8 文本时,我遇到了一个愚蠢但烦人的情况。看来 ReadLn 命令在第二次尝试后才读取正确的 UTF 8 字符。例如: prog
我使用 TClientSocket 与 Python 服务器进行了套接字通信。在意识到我无法使用 TClientSocket 在客户端上拥有更多功能后,我决定使用 INDY。我使用 Delphi In
我使用delphi 7。 我需要逐行读取一个utf-8文件,每行包含一个单词及其权重(一个数字)因此,我需要读取下一行,然后用分隔符(制表符)分隔行并将其保存在内存中。 所以, 1) Delphi 中
此代码无法在 GHC 7.0.3 中编译: import System.IO main = do z IO a .它从用户那里读取一行,然后将字符串解析为类型 a .什么是类型a ?它是你想
使用 Free Pascal IDE,我在 Windows 下遇到控制台 IO 的一些问题。 当我使用 Writeln 时,光标不会移动到下一行,而是停留在所写行的末尾。因此,如果我按 Enter 而
我一直在关注 Learn Haskell in 10 Minutes教程。一切顺利,直到我到达这条线: do { n <- readLn ; print (n^2) } 它不会在 ghci 中执行,而
readln 一直读到行尾(按下回车键),包含空格和所有内容, 我想要类似的东西,但对于 ansi c(不是 c++,需要用于 linux 和 windows) 我知道我可以创建一个函数来读取每个字符
我是一名优秀的程序员,十分优秀!