www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - not callable error

reply bluphantom91 <aadams89 uncc.edu> writes:
Hello,

I am trying to finish up a group project but I am running into a 
small problem. I keep getting an error about fgetc not being 
callable. The purpose of my program is to count the number of 
characters in a file. Any bit of help is appreciated!

Here's my code:

import std.stdio;
import std.file;
import std.string;


void main()
{
	FILE *file;
	char ch;
	int charCount,wordCount,input;
	
	
	
	//File file = File("test.txt","w");
	 //input=fscanf(file, "%ch",&ch);
	
	 //file.writeln("hello");
	
	//string s = file.readln();
	
	file=fopen("test,txt","r");
	
	while(!file.eof())
	{
		/*string line = chomp(file.readln());
		wordCount++;
		writeln(wordCount);*/
		
		ch = getc(file);
		charCount++;
			
	}
	
	
	
	file.close();

		
	
	
}
Nov 03 2016
parent reply Paul Backus <snarwin gmail.com> writes:
On Friday, 4 November 2016 at 02:28:17 UTC, bluphantom91 wrote:
 Hello,

 I am trying to finish up a group project but I am running into 
 a small problem. I keep getting an error about fgetc not being 
 callable. The purpose of my program is to count the number of 
 characters in a file. Any bit of help is appreciated!

 Here's my code:

 import std.stdio;
 import std.file;
 import std.string;
Since you're using the C library stdio functions, you should import core.stdc.stdio
Nov 03 2016
parent reply bluphantom91 <aadams89 uncc.edu> writes:
On Friday, 4 November 2016 at 02:59:49 UTC, Paul Backus wrote:
 On Friday, 4 November 2016 at 02:28:17 UTC, bluphantom91 wrote:
 Hello,

 I am trying to finish up a group project but I am running into 
 a small problem. I keep getting an error about fgetc not being 
 callable. The purpose of my program is to count the number of 
 characters in a file. Any bit of help is appreciated!

 Here's my code:

 import std.stdio;
 import std.file;
 import std.string;
Since you're using the C library stdio functions, you should import core.stdc.stdio
ok I added that in, but now its giving me this: function core.stdc.stdio.getc (shared(_IO_FILE)* stream) is not callable using argument types (File) Am I just using getc the wrong way?
Nov 04 2016
next sibling parent Nemanja Boric <4burgos gmail.com> writes:
On Friday, 4 November 2016 at 14:37:04 UTC, bluphantom91 wrote:
 On Friday, 4 November 2016 at 02:59:49 UTC, Paul Backus wrote:
 On Friday, 4 November 2016 at 02:28:17 UTC, bluphantom91 wrote:
 Hello,

 I am trying to finish up a group project but I am running 
 into a small problem. I keep getting an error about fgetc not 
 being callable. The purpose of my program is to count the 
 number of characters in a file. Any bit of help is 
 appreciated!

 Here's my code:

 import std.stdio;
 import std.file;
 import std.string;
Since you're using the C library stdio functions, you should import core.stdc.stdio
ok I added that in, but now its giving me this: function core.stdc.stdio.getc (shared(_IO_FILE)* stream) is not callable using argument types (File) Am I just using getc the wrong way?
You're mixing Phobos' `File` object and C's FILE stream. You're passing the `File` to getc which expects FILE. Also, if there's no specific reason, you should prefer the Phobos' file (which doesn't work with getc from C, as it would require obtaining the C stream from Phobos object, which would not be the best idea).
Nov 04 2016
prev sibling parent reply lobo <swamplobo gmail.com> writes:
On Friday, 4 November 2016 at 14:37:04 UTC, bluphantom91 wrote:
 On Friday, 4 November 2016 at 02:59:49 UTC, Paul Backus wrote:
 On Friday, 4 November 2016 at 02:28:17 UTC, bluphantom91 wrote:
 Hello,

 I am trying to finish up a group project but I am running 
 into a small problem. I keep getting an error about fgetc not 
 being callable. The purpose of my program is to count the 
 number of characters in a file. Any bit of help is 
 appreciated!

 Here's my code:

 import std.stdio;
 import std.file;
 import std.string;
Since you're using the C library stdio functions, you should import core.stdc.stdio
ok I added that in, but now its giving me this: function core.stdc.stdio.getc (shared(_IO_FILE)* stream) is not callable using argument types (File) Am I just using getc the wrong way?
Try something like this: ... ch = getc(file.getFP); ... https://dlang.org/phobos/std_stdio.html#.File.getFP bye, lobo
Nov 04 2016
parent Anders S <anders xore.se> writes:
On Friday, 4 November 2016 at 23:26:40 UTC, lobo wrote:
 On Friday, 4 November 2016 at 14:37:04 UTC, bluphantom91 wrote:
 On Friday, 4 November 2016 at 02:59:49 UTC, Paul Backus wrote:
 On Friday, 4 November 2016 at 02:28:17 UTC, bluphantom91 
 wrote:
 Hello,
....
Am I just using getc the wrong way?
Try something like this: ... ch = getc(file.getFP); ... https://dlang.org/phobos/std_stdio.html#.File.getFP bye, lobo
Hi, I having equal problems and it looks like you get the solution. so is it posible to get the full code listing from import .... to the counting that is working? Just as a conclusive answer for others aswell to read. /anders
Dec 16 2016