Start New Discussion within our Software Development Community

Hi,

I´m having problem while converting char to string.

#include "stdafx.h"
#include <fstream> 
#include <cstdio>
#include <iostream>


int main()
{
		std::ifstream arquivo("entrada.txt");
		if (!arquivo)
		{
			std::cout << "Arquivo não encontrado" << std::endl<< std::endl;
			system("PAUSE");
			exit(0);
		}
		
		std::string token;
		
		char arquivo_linha[255];

		while(arquivo)
		{
			arquivo.getline(arquivo_linha,255);
			if (arquivo_linha[0] != 35)
			{
			token = arquivo_linha;
		     	//std::cout << token << std::endl;
			printf("%s\n",token); 
			}
		}

		system("PAUSE");
	return 0;
}

This code only returns <null> on printf, but it works fine if I print the arquivo_linha.

I tried to use arquivo_linha.c_str() but it returns the error:
--------------------------------------------------------------------------------
1>------ Build started: Project: Interface GaussSolve, Configuration: Debug Win32 ------
1>Compiling...
1>Interface GaussSolve.cpp
1>c:\users\fernando\documents\visual studio 2008\projects\interface gausssolve\interface gausssolve\interface gausssolve.cpp(35) : error C2228: left of '.c_str' must have class/struct/union
1> type is 'char [255]'
1>Build log was saved at "file://c:\Users\Fernando\Documents\Visual Studio 2008\Projects\Interface GaussSolve\Interface GaussSolve\Debug\BuildLog.htm"
1>Interface GaussSolve - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Thanks,

Fernando.

This question has already been answered. Start a new discussion instead.