{{fbdoc item="title" value="INPUT (FILE MODE)"}}----
Specifies text file to be opened for input mode

{{fbdoc item="syntax"}}##
	[[KeyPgOpen|open]] //filename// for **Input** [[[KeyPgEncoding|encoding]] //encoding_type//] [[[KeyPgLock|lock]] //lock_type//] as [#]//filenum// 
##
{{fbdoc item="param"}}
	##//filename//##
		file name to open for input
	##//encoding_type//##
		indicates encoding type for the file
	##//lock_type//##
		locking to be used while the file is open
	##//filenum//##
		unused file number to associate with the open file

{{fbdoc item="desc"}}
	A file mode used with ##[[KeyPgOpen|Open]]## to open a text file for reading.
	
	This mode allows to read sequentially lines of text with ##[[KeyPgLineinputPp|Line Input #]]##, or to read comma separated values with ##[[KeyPgInputPp|Input #]]##. 
	
	Text files can't be simultaneously read and written in ""FreeBASIC"", so if both functions are required on the same file, it must be opened twice.
	
	##//filename//## must be a string expression resulting in a legal file name in the target OS, without wildcards. The file will be sought for in the present directory, unless the ##//filename//## contains a path . If the file does not exist, an error is issued. The pointer is set at the first character of the file.
	
	##//Encoding_type//## indicates the Unicode ##[[KeyPgEncoding|Encoding]]## of the file, so characters are correctly read. If omitted, "ascii" encoding is defaulted. Only little endian character encodings are supported at the moment. 
		-##"utf8"##, 
		-##"utf16"## 
		-##"utf32" ##
		-##"ascii"## (the default)
	
	##//Lock_type//## indicates the way the file is locked  for other processes, it is one of:
		- ##**Read**## - the file can be opened simultaneously by other processes, but not for reading
		- ##**Write**## - the file can be opened simultaneously by other processes, but not for writing
		- ##**Read Write**## - the file cannot be opened simultaneously by other processes (the default)
	
	##//filenum//## is a valid ""FreeBASIC"" file number (in the range ##1..255##) not being used for any other file presently open. The file number identifies the file for the rest of file operations. A free file number can be found using the ##[[KeyPgFreefile|Freefile]]## function.

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/fileio/for-input.bas"}}%%(freebasic)
Dim ff As UByte
Dim randomvar As Integer
Dim name_str As String
Dim age As Integer

'' collect the test data and output to file with Write #
Input "What is your name? ", name_str
Input "What is your age? ", age
Randomize
Print

ff = FreeFile
Open "testfile" For Output As #ff
Write #ff, Int(Rnd*42), name_str, age
Close #ff

'' clear variables
randomvar = 0
name_str = ""
age = 0

'' input the variables, using Input #
ff = FreeFile
Open "testfile" For Input As #ff
Input #ff, randomvar, name_str, age
Close #ff

Print "Random Number was: " & randomvar
Print "Your name is: " & name_str
Print "Your age is: " & age

'File outputted by this sample will look something like this
'(not including the leading comment marker):
'23,"Your Name",19
%%
{{fbdoc item="diff"}}


{{fbdoc item="see"}}
	- ##[[KeyPgInput|Input (Console I/O)]]##
	- ##[[KeyPgInputPp|Input #]]##
	- ##[[KeyPgInputnum|Input()]]##
	- ##[[KeyPgAppend|Append]]##
	- ##[[KeyPgOpen|Open]]##
	- ##[[KeyPgOutput|Output]]##

{{fbdoc item="back" value="CatPgFile|File I/O Functions"}}
