小编Mor*_*a R的帖子

使用Go包

我不确定如何调用Go包.例如,如果我想创建随机数,我应该导入"math/random",但它不仅仅是"math"库的一部分吗?那么为什么这段代码不起作用:

package main

import(
    "fmt"
    "math"
)

func main(){
    r := rand.New(rand.NewSource(99))
    fmt.Println(r)

}
Run Code Online (Sandbox Code Playgroud)

我的意思是,我不能直接通过简单地导入一个超类来直接访问随机函数(在这种情况下,只是数学"math"包)?

import packages go

2
推荐指数
1
解决办法
488
查看次数

关于C中getchar的行为

我是C的完全初学者,很抱歉,如果这个问题听起来太过微不足道了.

我的理解getchar(),并putchar()为他们处理文本流一次一个字符.假设我有这个程序从用户那里获取文本输入并将其显示在屏幕上:

#include <stdio.h>
main(){
    int c;
    c = getchar();
    while(c!= EOF){
        putchar(c);
        c=getchar();
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我的想法:

假设我运行这个程序,我输入单词Hi.getchar读取第一个字符(即H)并将其存储在中c.然后程序进入while循环并进入H屏幕.然后它获取下一个字符(i)并打印它.然后是EOF,当getchar将值赋给c时,while循环结束.因此,根据对所发生情况的这种解释,程序应在打印完所有字符并到达文件末尾后结束.

但是,当我运行程序时,在打印字符串后,程序等待接收额外的输入,这意味着它不会结束,而是等待用户输入更多的文本流.

为什么会发生这种情况?我在哪里弄错了?

c while-loop

0
推荐指数
1
解决办法
110
查看次数

每行打印一个单词

我需要编写一个程序,每行输出一个单词.这是我到目前为止所得到的:

#include <stdio.h>
main(){
    int c;
    while ((c = getchar()) != EOF){
        if (c != ' ' || c!='\n' || c!='\t')
            printf("%c", c);
        else 
            printf("\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

逻辑非常简单.我检查输入是否不是换行符,制表符或空格,在这种情况下它会打印它,否则会打印换行符.

当我运行它时,我得到这样的结果:

input-->  This is
output--> This is
Run Code Online (Sandbox Code Playgroud)

它打印整个事物.这里出了什么问题?

c string line

0
推荐指数
1
解决办法
1912
查看次数

打开和写入文件时出错

我想打开一个文件并写一些文本,但是我收到以下错误:

.\hello.go:13: cannot use msg (type string) as type []byte in argument to f.Write
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的代码:

package main

import (
    "os"
)

func printer(msg string) (err error) {
    f, err := os.Create("helloworld.txt")
    if err != nil {
        return err
    }
    defer f.Close()
    f.Write(msg)
    return err
}

func main() {
    printer("Hello World")
}
Run Code Online (Sandbox Code Playgroud)

io file go

-2
推荐指数
1
解决办法
252
查看次数

标签 统计

c ×2

go ×2

file ×1

import ×1

io ×1

line ×1

packages ×1

string ×1

while-loop ×1