I found the solution myself - when read in from stdin, there are 2 extra 
characters - CR and LF.  I just cut the string 2 characters before the end, 
and it works!  Thanks to those for posting replies!

On Thursday, August 24, 2017 at 11:35:31 PM UTC-4, Geoff Fridd wrote:
>
> Does anyone know why Google Go program 1 works, below, and program 2 
> doesn't? The only difference - I read in the filename from the console in 
> the one that doesn't work but it is a literal in the one that works... I 
> tried typing in the full path for the file, and also "..sample.txt" instead 
> of "sample.txt", but they didn't solve it either.
> // program 1 - this works:
>
>     package main import (
>             "fmt"
>             "os"
>             "bufio" )
>         
>         func main() { 
>             filename := getFilename()
>         fmt.Println("opening:",filename) 
>     //      fmt.Println("opening:sample.txt") 
>             _ , err := os.Open("sample.txt") 
>     //   _ , err := os.Open(filename) 
>             if err != nil { 
>         panic(err) 
>             } 
>         } 
>
>     func getFilename()  string {
>         reader := bufio.NewReader(os.Stdin)
>         fmt.Print("Enter file name: ")    // type in anything, this file 
> name not used
>         filename, _ := reader.ReadString('\n')
>         return filename
>     }
>
>
> // program 2 - this doesn't work, gives error shown below:
>
>     package main
>     import (
>         "fmt"
>         "os"
>         "bufio"
>     )
>     
>     func main() 
>         filename := getFilename()
>         fmt.Println("opening:",filename)
>     // fmt.Println("opening: sample.txt")
>     // _ , err := os.Open("sample.txt")
>         _ , err := os.Open(filename)
>         if err != nil {
>         panic(err)
>         }
>         }
>
>     func getFilename()  string {
>         reader := bufio.NewReader(os.Stdin)
>         fmt.Print("Enter file name: ")    // type in "sample.txt" (without 
> the quotes)
>         filename, _ := reader.ReadString('\n')
>         return filename
>     }
>
> Error message, panic invoked - 
> : The filename, directory name, or volume label syntax is incorrect.
>
> goroutine 1 [running]:
> main.main()
>         C:/installed programs/go/src/testopen2.go:16 +0x158
> exit status 2
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to