2016-11-04 5 views
0

У меня проблема с ошибкой, которую я не могу понять. Цель моей программы - считать символы в файле «test». Но я продолжаю получать эту ошибку ». Функция core.stdc.stdio.getc (shared (_IO_FILE) * stream) не может быть вызвана с использованием типов аргументов (File)»чтение символов в файле с использованием языка D

Вот мой код:

import std.stdio; 
import std.file; 
import std.string; 
import core.stdc.stdio; 




void main() 
{ 

    char ch; 
    int charCount; 



    File file = File("test.txt","w"); 

    file=File("test,txt","r"); 

    while(!file.eof()) 
    { 

     ch = getc(file); 
     charCount++; 

    } 



    file.close(); 




} 

ответ

1

std.stdio.File не C дескриптор файла, но вы используете getc из библиотеки C, который ожидает один.

Самый простой способ использует readText from std.file, который читает весь файл сразу:

int count = "test.txt".readText.length; 

Поскольку он возвращает массив символов, вы можете просто взять длину этого массива, чтобы получить ваш счет.