digitalmars.D.bugs - [Issue 2585] New: std.stream readf
- d-bugmail puremagic.com (52/52) Jan 15 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2585
- d-bugmail puremagic.com (5/54) Jan 15 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2585
http://d.puremagic.com/issues/show_bug.cgi?id=2585
Summary: std.stream readf
Product: D
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: fmfrodrigues gmail.com
/*
I dont know if this is a bug... but its a strange behavior...
readf documentation:
abstract int readf(...);
Scan a string from the input using a similar form to C's scanf and std.format.
*/
/*
Content of file that is opened:
1-2-3-4
*/
/*C sample*/
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp = fopen(argv[1],"r");
int num[4];
int res = fscanf(fp,"%d-%d-%d-%d",&num[0],&num[1],&num[2],&num[3]);
printf("\n%d-%d-%d-%d %d",num[0],num[1],num[2],num[3],res);
fclose(fp);
return 0;
}
/* Output */
1-2-3-4 4
/*D sample (dmd 1.034 linux)*/
import std.stdio;
import std.stream;
int main(string[] args)
{
File f = new File(args[1], FileMode.In);
int num[4];
TypeInfo[] types = [typeid(int)];
int res = f.readf("%d-%d-%d-%d",&num[0],&num[1],&num[2],&num[3]);
printf("\n%d-%d-%d-%d %d",num[0],num[1],num[2],num[3],res);
f.close();
return 1;
}
/* Output */
1-2-3-0 3
/* if i put a empty space at end of file content all works fine.*/
--
Jan 15 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2585/* I dont know if this is a bug... but its a strange behavior... readf documentation: abstract int readf(...); Scan a string from the input using a similar form to C's scanf and std.format. */ /* Content of file that is opened: 1-2-3-4 */ /*C sample*/ #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp = fopen(argv[1],"r"); int num[4]; int res = fscanf(fp,"%d-%d-%d-%d",&num[0],&num[1],&num[2],&num[3]); printf("\n%d-%d-%d-%d %d",num[0],num[1],num[2],num[3],res); fclose(fp); return 0; } /* Output */ 1-2-3-4 4 /*D sample (dmd 1.034 linux)*/ import std.stdio; import std.stream; int main(string[] args) { File f = new File(args[1], FileMode.In); int num[4]; TypeInfo[] types = [typeid(int)]; int res = f.readf("%d-%d-%d-%d",&num[0],&num[1],&num[2],&num[3]); printf("\n%d-%d-%d-%d %d",num[0],num[1],num[2],num[3],res); f.close(); return 1; } /* Output */ 1-2-3-0 3 /* if i put a empty space at end of file content all works fine.*/Sorry... The version of dmd i am using is 1.030 and not 1.034. --
Jan 15 2009








d-bugmail puremagic.com