2017-09-22 182 views
0

所以我试图让我的小程序输出到纯文本文件。我用Python,C,C++和C#取得了成功,但似乎找不到任何有关使用Go将数据输出到纯文本文件的文档。这里是我的代码:使用Go编程语言输出为纯文本文件?

package main 
import "fmt" 
import "strconv" 

func main() { 
    var age string 
    fmt.Print("\nWelcome to Survey! What is your age?\n\n") 
    fmt.Scanf("%s", &age) 
     if _, err := strconv.ParseInt(age,10,64); err == nil { 
      fmt.Printf("\nYou are %s years old!\n", age) 
     } else { 
     fmt.Printf("\nThat's not an age! Try again... \n") 
     } 
    fmt.Println("\nNice! Now, what is your name?\n") 
    fmt.Printf("Enter your name: ") 
    var name string 
    fmt.Scanf("%s", &name) 
    fmt.Println("\nHello " + name + "! It's nice to meet you!") 
    fmt.Println("\nWould you like to write your age and name to a text file?") 
    fmt.Println("\nPress 1 for yes or any other key for no!\n") 
    var yes int 
    fmt.Scanf("%d", &yes) 
    if yes == 1 { 
     fmt.Printf("\nAll done! Check Survey.txt in the current directory!\n") 
    } else { 
     fmt.Printf("\nOkay! Exiting... \n\n") 
    } 
} 

如果用户输入1可以看到,它打印一条消息来检查当前目录Survey.txt。基本上我所要做的就是将Go的年龄和名称变量写入一个名为Survey.txt的纯文本文件。

例子:

Age: x 
Name: x 

如果任何人有如何做到这一点的想法,这将会是真棒。我的操作系统是Xubuntu 16.04.3 LTS,但我认为这不会有太大的影响。代码现在正常工作,我只是想添加该功能。谢谢!

+0

对您的问题将鼠标出现此评论上述两英寸的标签顶上去..然后点击信息上看到有TUTS golang文件吨taboot - 欢迎来到SO ...一个伟大的开发人员的关键技能是能够自给自足,并阅读文档...阅读任何语言的规范的奖励积分 –

回答

-1

我认为很容易输出到文本文件。只需重定向程序输出。在终端命令行 goprogram >> outputFile.txt 无论如何,我只是提供一个建议,你不必单击缺点,因为如果紧急的话没有提供解释,如果是学术界等。

+1

我可以这样做,但我不想依靠终端/ BASH输出到文件。我宁愿让Go从程序中执行。 –

3

可以使用ioutil.WriteFile写入文件:

data := fmt.Sprintf("Age: %d\nName: %s\n", age, name) 

err := ioutil.WriteFile("Survey.txt", []byte(data), 0644) 
if err != nil { 
    log.Fatalf("error writing Survey.txt: %s", err) 
} 
+0

这看起来非常有用!谢谢,我会试一试! :) –